在S3 Bucket中完成上传后,有没有办法得到通知?要求是我需要在桶中完成视频上传后提供用户链接。默认情况下,我现在提供视频开始30分钟后的链接,无论视频上传5分钟还是40分钟。那么有什么方法可以提供上传已完成信息的任何API吗?
答案 0 :(得分:11)
发生以下任何情况时,可以在Amazon S3中触发通知:
s3:ObjectCreated:*
s3:ObjectCreated:Put
s3:ObjectCreated:Post
s3:ObjectCreated:Copy
s3:ObjectCreated:CompleteMultipartUpload
s3:ObjectRemoved:*
s3:ObjectRemoved:Delete
s3:ObjectRemoved:DeleteMarkerCreated
s3:ReducedRedundancyLostObject
通知可以通过三个目的地发送:
请参阅:Configuring Amazon S3 Event Notifications
最合适的选择取决于您的编程偏好以及您的应用编写方式:
一旦触发,您的代码就需要确定谁上传了视频,检索其用户详细信息,然后向他们发送电子邮件通知。如果您控制正在上传的对象的密钥(文件名),这将是最简单的,因为这将有助于确定要通知的用户。
答案 1 :(得分:1)
当文件上传到S3时,您可以使用Amazon Lambda向Amazon SNS发布消息(或以任何其他方式通知您)。
为Lambda函数设置S3触发器。请参阅本教程:http://docs.aws.amazon.com/lambda/latest/dg/walkthrough-s3-events-adminuser.html
在Lambda函数中,发送通知。您可以使用SNS,SES,SQS等
答案 2 :(得分:0)
没有直接的方法可以判断S3存储桶中的上传是否完整。你可以做一件简单的事情,经过大量的研究,我已经遵循了它,并且工作正常。
按照此link并按照您的要求每隔30秒左右读取文件大小,当文件大小未更改为两个同时读数时再次检查保证的大小,因为它可能是由于两个同时读数的大小可能没有改变的网络拥塞。