如何使用 AWS CLI 从 Glacier 下载档案
Posted
技术标签:
【中文标题】如何使用 AWS CLI 从 Glacier 下载档案【英文标题】:How to download archive from Glacier using AWS CLI 【发布时间】:2016-03-22 20:35:05 【问题描述】:如何使用 AWS CLI 从 Glacier 下载档案? 我试过了:
aws glacier initiate-job --vault-name test --account-id - --job-parameters '"Type": "archive-retrieval", "ArchiveId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"'
我收到以下错误:
调用时发生客户端错误 (PolicyEnforcedException) InitiateJob 操作:InitiateJob 请求被当前数据拒绝 检索策略。
我想这类似于inventory-retrieval
操作,比如现在发送请求,5 小时后再次运行命令下载它。
【问题讨论】:
【参考方案1】:当我的“数据检索策略”为“仅限免费套餐”时,我遇到了同样的错误。
两种方式:
1) 限制下载:
阅读此https://aws.amazon.com/glacier/faqs/#How_much_data_can_I_retrieve_for_free。简而言之:每天您可以免费检索大约 0.17% 的存储数据。
2) 为您的下载付费:
您应该使用网络界面更改它:“Amazon Glacier Vaults”页面 -> 设置; 或使用 aws cli:请参阅 set-data-retrieval-policy https://docs.aws.amazon.com/cli/latest/reference/glacier/set-data-retrieval-policy.html
【讨论】:
嗨 - 我知道这一点,如果我将其更改为另一层,它就可以工作。但这有悖于目的;在我读到的所有地方,他们都吹嘘“免费层”以及使用 Glacier 的成本如何。所以我想了解如何使用免费层提取数据。 阅读aws.amazon.com/glacier/faqs/…。简而言之:每天您可以免费检索大约 0.17% 的存储数据。 非常好的信息,谢谢。但是我认为我在限制范围内。我存储了 11 个档案,总大小为 110.5MB。根据他们的公式,110.5MB * 5% / 30 = 20MB - 我应该可以免费下载。一个存档11MB,下载还是失败。 你的算法很奇怪... 110.5MB * 5% / 30 ~ 180KB 其实不是我,是 Windows 计算器:110.5MB * 5% / 30 = 20.35041666666667。我试过另一个计算器,确实是 184kb。【参考方案2】:您需要在策略文档中添加“glacier:InitiateJob”作为允许的操作。
转到您的 Web UI,单击 Glacier,然后单击您的 Vault。 单击权限,然后单击编辑策略文档。在这里,您在名为“Action”的字段下添加“glacier:InitiateJob”行:[
【讨论】:
已添加,但仍无法正常工作。我什至添加了action: glacier:*, principal: "*"
,意思是允许所有用户执行所有操作,但仍然没有。我认为“PolicyEnforcedException”指的是数据检索策略(免费层、最大检索率、无检索限制),而不是权限策略。
另外,我已经将“AmazonGlacierFullAccess”角色附加到此测试中使用的 IAM 用户,因此我真的不需要在 Glacier 端添加其他策略权限。【参考方案3】:
对于像我一样被卡住的人:
如果您的工作成功完成但您不知道该怎么做,请使用get-job-output。
【讨论】:
以上是关于如何使用 AWS CLI 从 Glacier 下载档案的主要内容,如果未能解决你的问题,请参考以下文章
Amazon AWS Athena S3 和 Glacier 混合存储桶
AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront
AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront