所以我使用S3作为图像存储,其中图像不断上传到具有各种软件的存储桶。
我还在构建一个rails应用程序,让人们可以浏览S3上的图像库,但是出于性能问题,我需要保留有关本地数据库中图像的信息的副本,所以我不需要连接到每当有人观看图库时,S3的API。
现在获取S3上新对象通知的最佳方法是什么?我没有关于我的数据库的信息?
我想让一个工人不断获取所有S3对象的列表并注册我们没有的对象,但是S3每个API请求限制为1000个对象,我找不到{{{ 3}}指定下一个请求的偏移量,直到获取所有对象。
任何人都有想法?
P.S。我正在使用API docs连接到S3
答案 0 :(得分:3)
如this answer here和S3 documentation中所述,S3在将新文件上传到S3后不允许通知。通过民意调查,您迟早会达到某些限制。
我会尝试不同的方法。转到您的上传软件并在那里添加通知。例如,您可以向SNS发送正在进行新上传的通知。您可以在服务器上使用后台任务订阅此SNS队列,并在数据库中填写必要的信息。
但是,如果要进行轮询,请在链接的文档页面中查看结果对象中的Marker
属性。每个请求都会返回一个标记,如果您将此标记提供给下一个请求,您将获得第一个查询中不可用的下一个对象。