首页 文章

给定archive_id,我如何将存档从AWS Glacier移动到S3 Bucket?

提问于
浏览
0

我已经用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

2 回答

  • 2

    直接Glacier API和S3 / Glacier集成不以AWS用户可访问的方式相互连接 .

    如果您直接上传到Glacier,获取数据的唯一方法是直接从Glacier获取数据 .

    相反,如果您通过S3生命周期策略向Glacier添加内容,则没有公开的Glacier归档ID,获取内容的唯一方法是进行S3恢复 .

    它基本上好像“你”不是Glacier的客户,而是当你使用Glacier / S3集成时,“S3”是Glacier的客户 . (事实上,这是一个非常好的心理模型 - 冰川存储费用甚至是不同的 - 通过S3集成存储的文件与月度发票上的其他S3费用一起计费,而不是与冰川费用一起计费) .

    完成您正在尝试完成的任务的方法是执行range retrievals,其中您只请求Glacier恢复存档的一部分 .

    您可以选择执行范围检索的另一个原因是管理您在给定时间段内从Amazon Glacier下载的数据量 . 从Amazon Glacier检索数据时,首先启动检索作业,通常在3-5小时内完成 . 然后,检索到的数据可供下载24小时 . 因此,您可以检索部分存档,以便管理下载的计划 . 您也可以选择执行范围检索,以减少或消除您的检索费用 . - http://aws.amazon.com/glacier/faqs/

    然后你需要重新组装这些碎片 . 最后一部分似乎也是一个很大的优势,因为Glacier收费越多,你一次“恢复”的数据就越多 . 请注意,这不是用于下载数据的费用,无论您是否下载,都需要对恢复操作收费 .

    我看到的S3集成的一个优点是,你可以在S3中将数据“冷却”几小时/几天/周,然后再将它放在Glacier“冰上”,这会自动发生...所以你可以获取它从S3返回而不支付检索费用,直到它在S3中指定了你指定的时间,之后它会自动迁移 . 潜在的缺点是它似乎引入了更多运动部件 .

  • -1

    使用文档生命周期策略,您可以将文件直接从S3移动到Glacier,也可以使用 boto.s3.Key 对象的 restore 方法将这些对象还原回S3 . 另外,有关还原的工作原理的详细信息,请参阅S3文档的this section .

相关问题