当谈到 Amazon Glacier 时,我遇到了一些问题。
我输入了命令
aws glacier initiate-multipart-upload \
--account-id - \
--archive-description "Qozu Chronicles May 2023 Backup" \
--part-size 4294967296 \
--vault-name tyllavideo
并得到以下结果:
{
"location": "/953374234641/vaults/tyllavideo/multipart-uploads/-BbO80kesvItrSPcGdZrfhco87xzs1oPdWG4r1WW7lJ1aTjElIICKthnMnkFuFjej8k4kWvJvaOQFNXGufCfYNKKSuiW",
"uploadId": "-BbO80kesvItrSPcGdZrfhco87xzs1oPdWG4r1WW7lJ1aTjElIICKthnMnkFuFjej8k4kWvJvaOQFNXGufCfYNKKSuiW"
}
请注意,uploadId
以 开头-
。当我想上传部分内容时,这会成为一个问题,例如当我运行命令时
aws glacier upload-multipart-part \
--upload-id -BbO80kesvItrSPcGdZrfhco87xzs1oPdWG4r1WW7lJ1aTjElIICKthnMnkFuFjej8k4kWvJvaOQFNXGufCfYNKKSuiW \
--body chunkaa \
--range 'bytes 0-6717640/*' \
--account-id - \
--vault-name tyllavideo
我收到此错误:
aws: error: argument --upload-id: expected one argument
我尝试将 括uploadId
在引号中,并尝试使用\
转义-
。两者都给出了相同的错误。我做错了什么,如何开始上传?
答案1
错误报告中提到了这个问题
aws glacier 无法处理以连字符 (-) 开头的 archiveID #1319。
这篇文章与有关archiveId
,但建议的语法可能也适用于uploadId
。
建议的解决方法都使用避免在命令中直接指定 uploadId 的方法。
解决方法1:使用JSON参数输入方法代替普通的命令行输入:
aws glacier delete-archive --account-id - --vault-name myvault --cli-input-json '{"archiveId": "-test"}'
解决方法 2:使用参数语法name='value'
:
aws glacier delete-archive --account-id '-' --vault-name myvault --archive-id='-test'