use of com.qcloud.cos.model.ObjectListing in project cos-java-sdk-v5 by tencentyun.
the class ListObjectsDemo method listAllObjects.
// 如果要获取超过maxkey数量的object或者获取所有的object, 则需要循环调用listobject, 用上一次返回的next marker作为下一次调用的marker,
// 直到返回的truncated为false
public static void listAllObjects() {
// 1 初始化用户身份信息(secretId, secretKey)
COSCredentials cred = new BasicCOSCredentials("AKIDXXXXXXXX", "1A2Z3YYYYYYYYYY");
// 2 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
ClientConfig clientConfig = new ClientConfig(new Region("ap-beijing-1"));
// 3 生成cos客户端
COSClient cosclient = new COSClient(cred, clientConfig);
// bucket名需包含appid
String bucketName = "mybucket-1251668577";
ListObjectsRequest listObjectsRequest = new ListObjectsRequest();
// 设置bucket名称
listObjectsRequest.setBucketName(bucketName);
// prefix表示列出的object的key以prefix开始
listObjectsRequest.setPrefix("");
// deliter表示分隔符, 设置为/表示列出当前目录下的object, 设置为空表示列出所有的object
listObjectsRequest.setDelimiter("");
// 设置最大遍历出多少个对象, 一次listobject最大支持1000
listObjectsRequest.setMaxKeys(1000);
ObjectListing objectListing = null;
do {
try {
objectListing = cosclient.listObjects(listObjectsRequest);
} catch (CosServiceException e) {
e.printStackTrace();
return;
} catch (CosClientException e) {
e.printStackTrace();
return;
}
// common prefix表示表示被delimiter截断的路径, 如delimter设置为/, common prefix则表示所有子目录的路径
List<String> commonPrefixs = objectListing.getCommonPrefixes();
// object summary表示所有列出的object列表
List<COSObjectSummary> cosObjectSummaries = objectListing.getObjectSummaries();
for (COSObjectSummary cosObjectSummary : cosObjectSummaries) {
// 文件的路径key
String key = cosObjectSummary.getKey();
// 文件的etag
String etag = cosObjectSummary.getETag();
// 文件的长度
long fileSize = cosObjectSummary.getSize();
// 文件的存储类型
String storageClasses = cosObjectSummary.getStorageClass();
}
String nextMarker = objectListing.getNextMarker();
listObjectsRequest.setMarker(nextMarker);
} while (objectListing.isTruncated());
cosclient.shutdown();
}
use of com.qcloud.cos.model.ObjectListing in project cos-java-sdk-v5 by tencentyun.
the class ListObjectTest method ListObjectWithDelimiterTest.
@Test
public void ListObjectWithDelimiterTest() {
if (!judgeUserInfoValid()) {
return;
}
ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucket, keyPrefix, null, "/", 100);
ObjectListing objectListing = cosclient.listObjects(listObjectsRequest);
assertEquals(1L, objectListing.getCommonPrefixes().size());
assertEquals(0L, objectListing.getObjectSummaries().size());
}
use of com.qcloud.cos.model.ObjectListing in project cos-java-sdk-v5 by tencentyun.
the class ListObjectTest method ListNextBatchObjectWithTrunCated.
@Test
public void ListNextBatchObjectWithTrunCated() {
if (!judgeUserInfoValid()) {
return;
}
ObjectListing objectListingPrev = new ObjectListing();
objectListingPrev.setBucketName(bucket);
objectListingPrev.setPrefix(keyPrefix);
objectListingPrev.setNextMarker("");
objectListingPrev.setMaxKeys(100);
objectListingPrev.setDelimiter("");
objectListingPrev.setTruncated(false);
ListNextBatchOfObjectsRequest listNextBatchOfObjectsRequest = new ListNextBatchOfObjectsRequest(objectListingPrev);
ObjectListing objectListingNext = cosclient.listNextBatchOfObjects(listNextBatchOfObjectsRequest);
assertEquals(bucket, objectListingNext.getBucketName());
assertEquals(objectListingPrev.isTruncated(), objectListingNext.isTruncated());
assertEquals(objectListingPrev.getMaxKeys(), objectListingNext.getMaxKeys());
assertEquals(objectListingPrev.getNextMarker(), objectListingNext.getMarker());
assertEquals(0L, objectListingNext.getCommonPrefixes().size());
assertEquals(0L, objectListingNext.getObjectSummaries().size());
}
use of com.qcloud.cos.model.ObjectListing in project cos-java-sdk-v5 by tencentyun.
the class ListObjectTest method ListObjectNoDelimiterTest.
@Test
public void ListObjectNoDelimiterTest() {
if (!judgeUserInfoValid()) {
return;
}
ObjectListing objectListing = cosclient.listObjects(bucket, keyPrefix);
assertEquals(0L, objectListing.getCommonPrefixes().size());
assertEquals(arrayNum, objectListing.getObjectSummaries().size());
List<COSObjectSummary> objectSummaries = objectListing.getObjectSummaries();
for (int i = 0; i < arrayNum; ++i) {
COSObjectSummary cosObjectSummary = objectSummaries.get(i);
String expectedKey = String.format("%s/%dk.txt", keyPrefix, i);
assertEquals(expectedKey, cosObjectSummary.getKey());
assertEquals(i * 1024L, cosObjectSummary.getSize());
}
}
use of com.qcloud.cos.model.ObjectListing in project cos-java-sdk-v5 by tencentyun.
the class ListObjectTest method ListNextBatchObjectWithNoTrunCated.
@Test
public void ListNextBatchObjectWithNoTrunCated() {
if (!judgeUserInfoValid()) {
return;
}
ObjectListing objectListingPrev = new ObjectListing();
objectListingPrev.setBucketName(bucket);
objectListingPrev.setPrefix(keyPrefix);
objectListingPrev.setNextMarker("");
objectListingPrev.setMaxKeys(100);
objectListingPrev.setDelimiter("");
objectListingPrev.setTruncated(true);
ListNextBatchOfObjectsRequest listNextBatchOfObjectsRequest = new ListNextBatchOfObjectsRequest(objectListingPrev);
ObjectListing objectListingNext = cosclient.listNextBatchOfObjects(listNextBatchOfObjectsRequest);
assertEquals(0L, objectListingNext.getCommonPrefixes().size());
assertEquals(arrayNum, objectListingNext.getObjectSummaries().size());
List<COSObjectSummary> objectSummaries = objectListingNext.getObjectSummaries();
for (int i = 0; i < arrayNum; ++i) {
COSObjectSummary cosObjectSummary = objectSummaries.get(i);
String expectedKey = String.format("%s/%dk.txt", keyPrefix, i);
assertEquals(expectedKey, cosObjectSummary.getKey());
assertEquals(i * 1024L, cosObjectSummary.getSize());
}
}
Aggregations