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

时间:2015-11-05 17:34:31

标签: python api amazon-web-services amazon-s3 boto

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

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

我的第一个想法是筛选所有文件并获取最新文件。但是,该存储桶中存在大量文件,这种方法效率极低。

具体问题:

  1. 有没有办法有效地获取存储桶中的最新文件?
  2. 有没有办法使用boto监控上传到存储桶?
  3. 不太具体的问题:

    • 你会如何解决这个问题?假设您必须在桶中获取最新文件并打印它的名称,您会怎么做?

    谢谢!

1 个答案:

答案 0 :(得分:0)

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

如果您没有此类权限,但您可以调用GetBucket(),则可以检索存储桶中的对象列表。每次API调用最多返回1000个对象。

无API调用可用于"获取最新文件"。

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

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