上传 ID 以破折号(减号)开头怎么办?

上传 ID 以破折号(减号)开头怎么办?

当谈到 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'

相关内容