在Amazon S3存储桶中完成上载后获取通知

Asu*_*tes 7 amazon-s3 amazon-web-services

有没有办法在S3 Bucket中完成上传时收到通知?要求是我需要在桶中完成视频上传后提供用户链接.默认情况下,我现在提供视频开始30分钟后的链接,无论视频上传5分钟还是40分钟.那么有没有像任何API那样提供上传已完成的信息?

Joh*_*ein 12

发生以下任何情况时,可以在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

通知可以通过三个目的地发送:

  • 亚马逊简单通知服务(SNS),它可以通过电子邮件,HTTP/S端点,短信,移动推送通知发送通知
  • 亚马逊简单排队服务(SQS)
  • 亚马逊Lambda(目前并非在所有地区提供)

请参阅:配置Amazon S3事件通知

最合适的选择取决于您的编程首选项以及您的应用程序的编写方式:

  • 使用SNS推送到HTTP端点以触发应用程序中的某些代码
  • 编写一些代码来定期检查SQS队列
  • 在Node.js或Java中编写Lambda函数

一旦触发,您的代码就需要确定谁上传了视频,检索他们的用户详细信息,然后向他们发送电子邮件通知.如果您控制正在上载的对象的密钥(文件名),这将是最简单的,因为这将有助于确定要通知的用户.


Pau*_*Sen 3

没有直接的方法可以判断S3存储桶中的上传是否完成。您可以做一件简单的事情,我经过大量研究后遵循了这一点,并且它工作正常。

点击此链接,并根据您的要求每 30 秒左右读取一次文件大小,当两次同时读取的文件大小没有更改时,再次检查大小以确保大小,因为这可能是由于网络拥塞而导致大小可能没有变化更改为两个同时读数。