使用AWS CLI操作Glacier时无法通过get-job-output获取archiveId
解决AWS Glacier获取archiveId的问题
你当前的问题大概率是发起的作业类型错误:要获取包含archiveId的归档清单,必须发起
inventory-retrieval类型的作业,而非普通的归档检索作业。重新发起正确的清单检索作业:
aws glacier initiate-job --account-id 123456678 --vault-name my-vault --job-parameters '{"Type": "inventory-retrieval"}'
如果需要快速获取(需额外付费),可添加Tier参数:
aws glacier initiate-job --account-id 123456678 --vault-name my-vault --job-parameters '{"Type": "inventory-retrieval", "Tier": "Expedited"}'
- 等待作业完成后,先通过describe-job确认作业状态与类型:
aws glacier describe-job --account-id 123456678 --vault-name my-vault --job-id aws-job-id
需确保输出中Completed为true,且JobType是InventoryRetrieval。
- 再次执行get-job-output命令,此时
output.json文件会包含完整清单数据,结构大致如下:
{ "VaultARN": "arn:aws:glacier:...", "InventoryDate": "2024-05-20T00:00:00Z", "ArchiveList": [ { "ArchiveId": "your-archive-id-1", "ArchiveDescription": "...", "CreationDate": "...", "Size": 12345 }, { "ArchiveId": "your-archive-id-2", ... } ] }
你需要的archiveId就在ArchiveList数组的每个元素中。
- 补充说明:你之前执行get-job-output后得到的
status等内容是命令返回的响应元数据,实际的清单内容已写入output.json,但如果作业类型错误,该文件不会包含ArchiveList数据。
内容的提问来源于stack exchange,提问作者Huseyin Aydin
相关产品推荐
相关产品推荐

