bac*_*shN 1 java amazon-s3 amazon-web-services
我正在尝试从Amazon S3获取存储桶的commonPrefixes。我正在使用以下代码来获取所有对象的列表:
ObjectListing listing = s3Client.listObjects(new ListObjectsRequest().withBucketName(bucket).withPrefix("used/").withDelimiter("/"));
for (String name : listing.getCommonPrefixes())
{
System.out.println(name);
objectNames.add(name);
}
System.out.println("\n\n\nSize: " + objectNames.size());
Run Code Online (Sandbox Code Playgroud)
但这只是打印一些commonPrefixes。有超过2000个前缀,但仅打印950。如何获得所有前缀?
您ObjectListing一次最多只能包含1000个对象。调用时,getCommonPrefixes它仅返回这1000个对象的公共前缀。您需要检查ObjectListing的isTruncated()方法以确定是否还有更多记录,然后将该getNextMarker()方法与后续listObjects调用一起使用以获取剩余的对象记录以及这些对象的公共前缀。
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |