Search in sources :

Example 1 with ObjectListing

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();
}
Also used : COSCredentials(com.qcloud.cos.auth.COSCredentials) BasicCOSCredentials(com.qcloud.cos.auth.BasicCOSCredentials) BasicCOSCredentials(com.qcloud.cos.auth.BasicCOSCredentials) COSObjectSummary(com.qcloud.cos.model.COSObjectSummary) CosClientException(com.qcloud.cos.exception.CosClientException) ObjectListing(com.qcloud.cos.model.ObjectListing) COSClient(com.qcloud.cos.COSClient) ListObjectsRequest(com.qcloud.cos.model.ListObjectsRequest) CosServiceException(com.qcloud.cos.exception.CosServiceException) Region(com.qcloud.cos.region.Region) ClientConfig(com.qcloud.cos.ClientConfig)

Example 2 with ObjectListing

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());
}
Also used : ListObjectsRequest(com.qcloud.cos.model.ListObjectsRequest) ObjectListing(com.qcloud.cos.model.ObjectListing) Test(org.junit.Test)

Example 3 with ObjectListing

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());
}
Also used : ObjectListing(com.qcloud.cos.model.ObjectListing) ListNextBatchOfObjectsRequest(com.qcloud.cos.model.ListNextBatchOfObjectsRequest) Test(org.junit.Test)

Example 4 with ObjectListing

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());
    }
}
Also used : COSObjectSummary(com.qcloud.cos.model.COSObjectSummary) ObjectListing(com.qcloud.cos.model.ObjectListing) Test(org.junit.Test)

Example 5 with ObjectListing

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());
    }
}
Also used : COSObjectSummary(com.qcloud.cos.model.COSObjectSummary) ObjectListing(com.qcloud.cos.model.ObjectListing) ListNextBatchOfObjectsRequest(com.qcloud.cos.model.ListNextBatchOfObjectsRequest) Test(org.junit.Test)

Aggregations

ObjectListing (com.qcloud.cos.model.ObjectListing)12 ListObjectsRequest (com.qcloud.cos.model.ListObjectsRequest)9 COSObjectSummary (com.qcloud.cos.model.COSObjectSummary)7 Test (org.junit.Test)6 CosClientException (com.qcloud.cos.exception.CosClientException)3 CosServiceException (com.qcloud.cos.exception.CosServiceException)3 COSClient (com.qcloud.cos.COSClient)2 ClientConfig (com.qcloud.cos.ClientConfig)2 BasicCOSCredentials (com.qcloud.cos.auth.BasicCOSCredentials)2 COSCredentials (com.qcloud.cos.auth.COSCredentials)2 ListNextBatchOfObjectsRequest (com.qcloud.cos.model.ListNextBatchOfObjectsRequest)2 Region (com.qcloud.cos.region.Region)2 ArrayList (java.util.ArrayList)2 COSProgressListener (com.qcloud.cos.event.COSProgressListener)1 COSProgressListenerChain (com.qcloud.cos.event.COSProgressListenerChain)1 MultipleFileTransferProgressUpdatingListener (com.qcloud.cos.event.MultipleFileTransferProgressUpdatingListener)1 MultipleFileTransferStateChangeListener (com.qcloud.cos.event.MultipleFileTransferStateChangeListener)1 ProgressListener (com.qcloud.cos.event.ProgressListener)1 ProgressListenerChain (com.qcloud.cos.event.ProgressListenerChain)1 ResponseNotCompleteException (com.qcloud.cos.exception.ResponseNotCompleteException)1