我有一个用例,我必须将200 + TB,18M对象S3存储桶备份到另一个经常更改的帐户(用于关键数据的批处理)。我需要添加一个验证步骤,但由于存储桶,对象数量和更改频率都很大,这很棘手。
我目前的想法是从原始存储桶和存档桶中提取eTags,并编写流式差异工具来比较值。这里有没有人不得不解决这个问题,如果有的话,你会得到一个更好的答案吗?
答案 0 :(得分:0)
首先,如果您希望保持两个存储桶同步(一旦您完成了初始同步),就可以使用Cross-Region Replication (CRR)。
要进行初始同步,您可以尝试使用AWS Command-Line Interface (CLI),它具有aws s3 sync
命令。但是,对于大量文件可能会有一些困难 - 我建议你试一试。它使用密钥,日期和文件大小来确定要同步的文件。
如果您确实希望创建自己的同步应用,那么 eTag 绝对是比较文件的明确方式。
为简单起见,请激活Amazon S3 Inventory,它可以提供存储桶中所有文件的每日列表,包括eTag。然后,您可以在清单文件之间进行比较,以发现哪些剩余文件需要同步。
答案 1 :(得分:0)
对于任何寻求自动解决此问题的方式的人(就像我一样), 我创建了一个小的python脚本,该脚本利用S3库存和Athena来有效地进行比较。 (这基本上是约翰·罗森斯坦建议的自动化)
找到它