我有一个场景,我们有很多客户上传到s3。
答案 0 :(得分:28)
<强>更新强>
自2014年11月起,S3支持以下事件通知:
s3:ObjectCreated:Put
- 一个对象是由HTTP PUT操作创建的。s3:ObjectCreated:Post
- HTTP POST操作创建了一个对象。s3:ObjectCreated:Copy
- 创建了一个对象的S3复制操作。s3:ObjectCreated:CompleteMultipartUpload
- 完成S3多部分上传后创建了一个对象。s3:ObjectCreated:*
- 对象是由上面列出的某个事件类型或将来添加的类似对象创建事件创建的。s3:ReducedRedundancyObjectLost
- 存储了Redced Redundancy的S3对象已丢失。这些通知可以发布到Amazon SNS,SQS或Lambda。查看Alan's answer中链接的博文,了解有关这些新通知的详细信息。
原始答案:
虽然Amazon S3有一个存储桶通知系统,但它不支持除 s3:ReducedRedundancyLostObject 事件之外的任何通知(请参阅其API中的 GET Bucket通知部分) )。
目前检查新对象的唯一方法是以预设的时间间隔轮询存储桶,或者在上传客户端中构建自己的通知逻辑(可能基于Amazon SNS)。
答案 1 :(得分:12)
推送通知现已内置到S3中:
http://aws.amazon.com/blogs/aws/s3-event-notification/
当通过PUT或POST创建对象或完成多部分上传时,您可以向SQS或SNS发送通知。
答案 2 :(得分:1)
现在,您最好的选择是使用AWS Lambda服务。您可以使用node.js javascript,java或Python编写Lambda(可能会及时添加更多选项)。 lambda服务允许您编写响应来自S3的事件的函数,例如文件上载。经济高效,可扩展且易于使用。