如何在Amazon S3中区分非常大的存储桶?

时间:2018-04-17 23:18:42

标签: amazon-web-services amazon-s3

我有一个用例,我必须将200 + TB,18M对象S3存储桶备份到另一个经常更改的帐户(用于关键数据的批处理)。我需要添加一个验证步骤,但由于存储桶,对象数量和更改频率都很大,这很棘手。

我目前的想法是从原始存储桶和存档桶中提取eTags,并编写流式差异工具来比较值。这里有没有人不得不解决这个问题,如果有的话,你会得到一个更好的答案吗?

2 个答案:

答案 0 :(得分:0)

首先,如果您希望保持两个存储桶同步(一旦您完成了初始同步),就可以使用Cross-Region Replication (CRR)

要进行初始同步,您可以尝试使用AWS Command-Line Interface (CLI),它具有aws s3 sync命令。但是,对于大量文件可能会有一些困难 - 我建议你试一试。它使用密钥,日期和文件大小来确定要同步的文件。

如果您确实希望创建自己的同步应用,那么 eTag 绝对是比较文件的明确方式。

为简单起见,请激活Amazon S3 Inventory,它可以提供存储桶中所有文件的每日列表,包括eTag。然后,您可以在清单文件之间进行比较,以发现哪些剩余文件需要同步。

答案 1 :(得分:0)

对于任何寻求自动解决此问题的方式的人(就像我一样), 我创建了一个小的python脚本,该脚本利用S3库存和Athena来有效地进行比较。 (这基本上是约翰·罗森斯坦建议的自动化)

您可以在这里https://github.com/forter/s3-compare

找到它