如何使用 boto 监控 python 的 AWS S3 存储桶?

How to monitor a AWS S3 bucket with python using boto?

我可以访问 S3 存储桶。我不拥有这个桶。我需要检查是否有新文件添加到存储桶中,以对其进行监控。

我看到存储桶可以触发事件,并且可以利用亚马逊的 Lambda 来监控和响应这些事件。但是,我无法修改存储桶的设置以允许这样做。

我的第一个想法是筛选所有文件并获取最新的文件。但是,那个桶中有很多文件,这种方法被证明效率很低。

具体问题:

  1. 有没有办法高效地获取存储桶中的最新文件?
  2. 有没有办法使用 boto 监控上传到存储桶的内容?

不太具体的问题:

谢谢!

您说得对,AWS Lambda 可以在将对象添加到 Amazon S3 存储桶或从中删除时触发。也可以向 Amazon SNSAmazon SQS 发送消息。这些设置需要由对存储桶具有必要权限的人员进行配置。

如果您没有这样的权限,但您可以调用 GetBucket(),那么您可以检索存储桶中的对象列表。 returns 每个 API 调用最多 1000 个对象。

没有API呼叫 "get the newest files"。

没有原始代码可以"monitor"上传到存储桶。您需要编写代码来列出存储桶的内容,然后识别新对象。

我将如何解决这个问题?我会要求存储桶的所有者添加一些功能来触发 Lambda/SNS/SQS,或者提供文件提要.如果这不可能,我会编写自己的代码来扫描整个存储桶并让它定期执行。