1

我希望对我的 S3 存储桶进行版本控制,以防止意外修改。此外,我希望 S3 中的对象在 30 天后存档到 Glacier。

当我去启用版本控制时,它说

启用后,无法禁用版本控制,您将无法为此存储桶添加生命周期规则。

但是,我可以为存储桶添加生命周期规则,然后启用版本控制。

此外,在这种情况下如何恢复工作。例如,在第 1 天,我的存储桶中有文件 A、B、C。在第 20 天,我有文件 A、B1、C1、D。在第 30 天,对象被移动到 S3。现在,当我在第 40 天进行恢复时,我的存储桶中是否还有文件 B 的所有版本?

4

2 回答 2

4

Amazon S3 现在支持版本控制的生命周期规则

http://aws.amazon.com/about-aws/whats-new/2014/05/20/amazon-s3-now-supports-lifecycle-rules-for-versioning/

Amazon S3 现在支持版本控制的生命周期规则。这意味着您现在可以为 S3 存储桶使用生命周期规则,无论它们是否启用版本控制。

于 2015-06-01T20:36:26.553 回答
0

不允许同时使用版本化存储桶和生命周期策略

AWS 文档指出,版本化存储桶和生命周期的组合是不可能的。

尝试在具有生命周期规则的存储桶上启用版本控制(使用管理控制台)将指示您首先删除规则。

未提供将生命周期规则添加到版本化存储桶中。

如何在版本化存储桶上存档内容

在相同的情况下,我使用以下解决方案:

1)首先将所有版本移动到“平桶”中 2)从平桶存档到冰川。

扁平桶是一个允许在非版本桶上存储版本的概念。OpenStack 项目swift以某种方式做到这一点,版本化存储桶中的每个密钥在平面上都有特殊的名称,形状为<hexprefix><original_key_name>/<epochtimeinmilis>

<hexprefix>是三个字符长的十六进制数字(零填充),告诉您原始密钥名称的长度。这允许您在版本化存储桶上使用任意键名,即使名称类似于平面存储桶上使用的格式。前缀总是在这里告诉你,读取键名多远才能得到原始名称。

在我的解决方案中,我使用了一些不同的模式来表示上次修改时间。

建议 - 移动到扁平存储桶时,将文件打包成更大的块

由于 Amazon Glacier 有一些开销,您必须为此付费,因此建议将存档内容打包成更大的文件。我使用简单的焦油。文件大小的收支平衡点约为 16 kB,较小的文件存储在 Amazon Glacier 中的成本高于 AWS S3(该点是在上次价格下跌之前计算的,预计现在会更高)。

于 2014-04-08T11:48:19.753 回答