如何检测 Amazon S3 中的变化? [复制]

Posted

技术标签:

【中文标题】如何检测 Amazon S3 中的变化? [复制]【英文标题】:How to detect changes in Amazon S3? [duplicate] 【发布时间】:2012-05-08 15:08:48 【问题描述】:

可能重复:Notification of new S3 objectsGet notified when user uploads to an S3 bucket?

检测 Amazon S3 更改的最有效方法是什么?许多分布式盒子需要与 S3 同步本地文件。每个盒子都需要与 S3 存储桶的一部分同步。有时文件会从外部来源放入存储桶中,因此盒子不会知道它。

我可以编写一个脚本,不断爬取 S3 上的所有文件,并在发生更改时通知相应的框,但这会很慢而且成本很高。 (将有数百万个文件)。我曾考虑在存储桶上启用日志记录,但写入日志需要很长时间,我希望能很快收到更改通知。

还有其他想法吗?

【问题讨论】:

加入我们的行列,请求 Amazon 在 S3 存储桶中的密钥发生更改时添加 SNS 通知。他们确实会听取客户的意见,如果有足够多的人大声喊叫...... 所以您对S3存储桶的访问不受您的代码控制?任何人都可以使用任何客户端将文件放到任何地方?我会先解决这个问题...... 【参考方案1】:

Amazon 提供了一种通知存储桶事件的方法(如 here 所示),但目前唯一支持的事件是 s3:ReducedRedundancyLostObject

恐怕你今天可以做你想做的唯一方法是通过轮询(或爬行,就像你说的那样)或修改将文件上传到你的存储桶的客户端(如果你控制他们的代码)以便在上传/更改内容时通知您的盒子。

【讨论】:

以上是关于如何检测 Amazon S3 中的变化? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用适用于 Node.js 的 AWS 开发工具包将 Amazon S3 中的所有对象从一个前缀复制/移动到另一个前缀

复制同一 Amazon S3 存储桶中的文件

如何将文件从 S3 复制到 Amazon EMR HDFS?

Laravel 5:如何将文件从Amazon S3复制(流)到FTP?

Laravel 5:如何将本地文件复制到 Amazon S3?

Amazon S3 将目录复制到另一个目录