设置S3 Java API的页面大小

时间:2015-10-29 10:13:55

标签: java amazon-s3

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);
}

1 个答案:

答案 0 :(得分:0)

不幸的是,你不能,因为这是底层API的限制。您可以在单个请求中获取的最大值为1,000。

  

GET Bucket(列出对象)

     

GET操作的此实现返回存储桶中的部分或全部(最多1000个)对象。

     

- http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html