我用Python Boto编写了一个档案系统,tar有几个文件并上传到Glacier。这一切都很好,我正在存储所有的归档ID。
我想测试下载大型存档(大约120GB)。我发起了检索,但是下载了> 24小时,最后,我得到了403,因为资源不再可用,下载失败。
如果我直接从我的服务器存档到Glacier(跳过S3),是否可以启动还原以将存档还原到S3存储桶,以便我可以花费超过24小时来下载副本?我在S3或Glacier Boto文档中都没有看到任何内容。
理想情况下,我会使用Boto执行此操作,但可以使用其他可编写脚本的选项。有谁知道如何给出archiveId,我可能会将存档从AWS Glacier移动到S3 Bucket?如果这是不可能的,还有其他选择让我的自己有更多时间下载大文件吗?
谢谢!
http://docs.pythonboto.org/en/latest/ref/glacier.html http://docs.pythonboto.org/en/latest/ref/s3.html
答案 0 :(得分:2)
直接Glacier API和S3 / Glacier集成没有以AWS用户可访问的方式相互连接。
如果您直接上传到Glacier,获取数据的唯一方法是直接从Glacier取回。
相反,如果您通过S3生命周期策略向Glacier添加内容,则没有公开的Glacier归档ID,获取内容的唯一方法是进行S3恢复。
当您使用Glacier / S3集成时,基本上就好像“您”不是Glacier客户,而是“S3”是Glacier客户。 (事实上,这是一个非常好的心理模型 - 冰川存储费用甚至是不同的 - 通过S3集成存储的文件与月度发票上的其他S3费用一起计费,而不是冰川费用。) p>
完成你想要完成的任务的方法是range retrievals,你只要求Glacier恢复档案的一部分。
您可以选择执行范围检索的另一个原因是管理您在给定时间段内从Amazon Glacier下载的数据量。从Amazon Glacier检索数据时,首先启动检索作业,通常在3-5小时内完成。然后,检索到的数据可供下载24小时。因此,您可以检索部分存档,以便管理下载计划。您也可以选择执行范围检索,以减少或消除您的检索费用。
然后你需要重新组装这些碎片。最后一部分看起来也是一个很大的优势,因为Glacier收费越高,你一次“恢复”的数据就越多。请注意,这不是用于下载数据的费用,无论您是否下载,都需要为恢复操作付费。
我看到S3集成的一个优点是,您可以在S3中将数据“冷却”几小时/几天/周,然后再将其置于冰川中“冰上”,这自动发生...所以您可以从S3获取它而无需支付任何检索费用,直到它在S3中停留了您指定的时间,之后它会自动迁移。潜在的缺点是它似乎引入了更多活动部件。
答案 1 :(得分:-1)
使用文档生命周期策略,您可以直接将文件从S3移动到Glacier,也可以使用restore
对象的boto.s3.Key
方法将这些对象还原回S3。另外,有关还原的工作原理的详细信息,请参阅S3文档的this section。