轮询新S3对象的最佳方法是什么?

时间:2012-12-14 05:24:07

标签: ruby-on-rails amazon-s3

所以我使用S3作为图像存储,其中图像不断上传到具有各种软件的存储桶。

我还在构建一个rails应用程序,让人们可以浏览S3上的图像库,但是出于性能问题,我需要保留有关本地数据库中图像的信息的副本,所以我不需要连接到每当有人观看图库时,S3的API。

现在获取S3上新对象通知的最佳方法是什么?我没有关于我的数据库的信息?

我想让一个工人不断获取所有S3对象的列表并注册我们没有的对象,但是S3每个API请求限制为1000个对象,我找不到{{{ 3}}指定下一个请求的偏移量,直到获取所有对象。

任何人都有想法?

P.S。我正在使用API docs连接到S3

1 个答案:

答案 0 :(得分:3)

this answer hereS3 documentation中所述,S3在将新文件上传到S3后不允许通知。通过民意调查,您迟早会达到某些限制。

我会尝试不同的方法。转到您的上传软件并在那里添加通知。例如,您可以向SNS发送正在进行新上传的通知。您可以在服务器上使用后台任务订阅此SNS队列,并在数据库中填写必要的信息。

但是,如果要进行轮询,请在链接的文档页面中查看结果对象中的Marker属性。每个请求都会返回一个标记,如果您将此标记提供给下一个请求,您将获得第一个查询中不可用的下一个对象。