2

所以我使用 S3 作为图像存储,图像通过各种软件不断上传到存储桶。

我还在构建一个 Rails 应用程序,让人们可以浏览 S3 上的图像库,但是对于性能问题,我需要在本地数据库中保留有关图像的信息副本,因此我不必随时连接到 S3 的 API某人查看画廊。

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

我想创建一个不断获取所有 S3 对象列表并注册我们没有的对象的工作人员,但是 S3 每个 API 请求限制为 1000 个对象,我无法在API 文档上找到指定一个方法下一个请求的偏移量,直到获取所有对象。

有人有想法吗?

PS 我正在使用这个 gem连接到 S3

4

1 回答 1

3

如此处的答案S3 文档中所述,将新文件上传到 S3 后,S3 不允许通知。通过轮询,您迟早会达到一些限制。

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

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

于 2012-12-14T07:54:49.793 回答