1

我已经用 Python Boto 编写了一个归档系统,该系统将 tar 的几个文件目录上传到 Glacier。这一切都很好,我正在存储所有存档 ID。

我想测试下载一个大档案(大约 120GB)。我启动了检索,但下载花了 > 24 小时,最后,我得到了 403,因为资源不再可用并且下载失败。

如果我直接从我的服务器存档到 Glacier(跳过 S3),是否可以启动将存档恢复到 S3 存储桶的恢复,这样我可能需要超过 24 小时才能下载副本?我在 S3 或 Glacier Boto 文档中都没有看到任何内容。

理想情况下,我会使用 Boto 执行此操作,但会接受其他可编写脚本的选项。有谁知道如何给定一个 archiveId,我可能会着手将档案从 AWS Glacier 移动到 S3 存储桶?如果这是不可能的,还有其他选择可以让我自己有更多时间下载大文件吗?

谢谢!

http://docs.pythonboto.org/en/latest/ref/glacier.html http://docs.pythonboto.org/en/latest/ref/s3.html

4

2 回答 2

2

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

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

相反,如果您通过 S3 生命周期策略将内容添加到 Glacier,则不会暴露 Glacier 存档 ID,获取内容的唯一方法是执行 S3 还原。

当您使用 Glacier/S3 集成时,基本上就好像“您”不是 Glacier 客户,而是“S3”是 Glacier 客户。(事实上​​,这是一个非常好的心理模型——Glacier 存储费用的计费方式甚至有所不同——通过 S3 集成存储的文件与月度发票上的其他 S3 费用一起计费,而不是与 Glacier 费用一起计费)。

完成您直接尝试完成的事情的方法是进行范围检索,您只要求 Glacier 恢复存档的一部分。

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

http://aws.amazon.com/glacier/faqs/

然后,您需要重新组装这些部件。最后一部分似乎也是一个很大的优势,因为 Glacier 确实收费更高,因此您一次“恢复”的数据越多。请注意,这不是下载数据的费用,而是恢复操作的费用,无论您是否下载。

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

于 2014-02-12T18:12:00.343 回答
-1

restore使用文档生命周期策略,您可以将文件直接从 S3 移动到 Glacier,还可以使用对象的方法将这些对象恢复到 S3 boto.s3.Key。此外,请参阅S3 文档的这一部分,了解有关还原如何工作的更多信息。

于 2014-02-12T15:10:33.110 回答