我必须编写一个rails任务来从s3存储桶获取文件,但我的存储桶有超过1000个对象。
.
#Connection codes and configures
.
bucket = AWS::S3::Bucket.find('my_bucket')
puts bucket.size
# => 1000
这段代码只给我1000个对象:(
我如何从s3桶中获取所有对象?
答案 0 :(得分:9)
如S3 developer documentation中所述:
要管理大型结果集,Amazon S3会使用分页来分割它们 多个回应。每个列表键响应返回一页向上 到1000个键,指示响应是否为指示符 截断。您发送一系列列表键请求,直到您有 收到所有钥匙。
对REST GET Bucket操作的响应包含 IsTruncated 元素,该元素扮演上述指标的角色。
要使用AWS :: S3库检索下一组结果,请使用当前结果页面中的最后一个键作为下一个请求中的标记。