S3 Java API默认页面大小为每个请求1000个对象。 由于我的数据库中有数万个对象,因此我希望能够在较大的页面中列出对象。
这是我目前使用的代码:
@Override
public S3SyncResult call() throws Exception {
long start = System.currentTimeMillis();
createRequest();
ObjectListing listing = s3API.listS3Objects(createRequest());
while (listing.isTruncated()) {
log.debug("Received [" + listing.getObjectSummaries().size() + "] objects");
listing = s3API.listS3Objects(listing);
}
log.debug("Listing took [" + TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - start) + "]");
return null;
}
private ListObjectsRequest createRequest() {
return new ListObjectsRequest(params.getBucket(),params.getPrefix(),null,null,2000);
}
答案 0 :(得分:0)
不幸的是,你不能,因为这是底层API的限制。您可以在单个请求中获取的最大值为1,000。
GET Bucket(列出对象)
GET
操作的此实现返回存储桶中的部分或全部(最多1000个)对象。- http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html