Search in sources :

Example 16 with TransferManager

use of com.qcloud.cos.transfer.TransferManager in project cos-java-sdk-v5 by tencentyun.

the class TransferManagerDemo method pauseUploadFileAndResume.

// 上传文件(上传过程中暂停, 并继续上传)
public static void pauseUploadFileAndResume() {
    // 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";
    ExecutorService threadPool = Executors.newFixedThreadPool(4);
    // 传入一个threadpool, 若不传入线程池, 默认TransferManager中会生成一个单线程的线程池。
    TransferManager transferManager = new TransferManager(cosclient, threadPool);
    String key = "aaa/bbb.txt";
    File localFile = new File("src/test/resources/len30M.txt");
    PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
    try {
        // 返回一个异步结果Upload, 可同步的调用waitForUploadResult等待upload结束, 成功返回UploadResult, 失败抛出异常.
        Upload upload = transferManager.upload(putObjectRequest);
        Thread.sleep(10000);
        PersistableUpload persistableUpload = upload.pause();
        upload = transferManager.resumeUpload(persistableUpload);
        showTransferProgress(upload);
        UploadResult uploadResult = upload.waitForUploadResult();
        System.out.println(uploadResult.getETag());
    } catch (CosServiceException e) {
        e.printStackTrace();
    } catch (CosClientException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    transferManager.shutdownNow();
    cosclient.shutdown();
}
Also used : TransferManager(com.qcloud.cos.transfer.TransferManager) COSCredentials(com.qcloud.cos.auth.COSCredentials) BasicCOSCredentials(com.qcloud.cos.auth.BasicCOSCredentials) BasicCOSCredentials(com.qcloud.cos.auth.BasicCOSCredentials) CosClientException(com.qcloud.cos.exception.CosClientException) PersistableUpload(com.qcloud.cos.transfer.PersistableUpload) PersistableUpload(com.qcloud.cos.transfer.PersistableUpload) MultipleFileUpload(com.qcloud.cos.transfer.MultipleFileUpload) Upload(com.qcloud.cos.transfer.Upload) COSClient(com.qcloud.cos.COSClient) CosServiceException(com.qcloud.cos.exception.CosServiceException) ExecutorService(java.util.concurrent.ExecutorService) Region(com.qcloud.cos.region.Region) UploadResult(com.qcloud.cos.model.UploadResult) ClientConfig(com.qcloud.cos.ClientConfig) File(java.io.File) PutObjectRequest(com.qcloud.cos.model.PutObjectRequest)

Example 17 with TransferManager

use of com.qcloud.cos.transfer.TransferManager in project cos-java-sdk-v5 by tencentyun.

the class TransferManagerDemo method uploadDirectory.

// 批量上传
public static void uploadDirectory() {
    // 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";
    ExecutorService threadPool = Executors.newFixedThreadPool(4);
    // 传入一个threadpool, 若不传入线程池, 默认TransferManager中会生成一个单线程的线程池。
    TransferManager transferManager = new TransferManager(cosclient, threadPool);
    // 设置文件上传到 bucket 之后的前缀目录,设置为 “”,表示上传到 bucket 的根目录
    String cos_path = "/prefix";
    // 要上传的文件夹的绝对路径
    String dir_path = "/to/mydir";
    // 是否递归上传目录下的子目录,如果是 true,子目录下的文件也会上传,且cos上会保持目录结构
    Boolean recursive = false;
    try {
        // 返回一个异步结果Upload, 可同步的调用waitForUploadResult等待upload结束, 成功返回UploadResult, 失败抛出异常.
        MultipleFileUpload upload = transferManager.uploadDirectory(bucketName, cos_path, new File(dir_path), recursive);
        // 可以选择查看上传进度
        showTransferProgress(upload);
        // 或者阻塞等待完成
        upload.waitForCompletion();
        System.out.println("upload directory done.");
    } catch (CosServiceException e) {
        e.printStackTrace();
    } catch (CosClientException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    transferManager.shutdownNow();
    cosclient.shutdown();
}
Also used : TransferManager(com.qcloud.cos.transfer.TransferManager) COSCredentials(com.qcloud.cos.auth.COSCredentials) BasicCOSCredentials(com.qcloud.cos.auth.BasicCOSCredentials) BasicCOSCredentials(com.qcloud.cos.auth.BasicCOSCredentials) CosClientException(com.qcloud.cos.exception.CosClientException) COSClient(com.qcloud.cos.COSClient) CosServiceException(com.qcloud.cos.exception.CosServiceException) ExecutorService(java.util.concurrent.ExecutorService) Region(com.qcloud.cos.region.Region) ClientConfig(com.qcloud.cos.ClientConfig) File(java.io.File) MultipleFileUpload(com.qcloud.cos.transfer.MultipleFileUpload)

Example 18 with TransferManager

use of com.qcloud.cos.transfer.TransferManager in project cos-java-sdk-v5 by tencentyun.

the class TransferManagerDemo method copyFileSetMetadata.

public static void copyFileSetMetadata() {
    // 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-guangzhou"));
    // 3 生成cos客户端
    COSClient cosclient = new COSClient(cred, clientConfig);
    ClientConfig srcClientConfig = new ClientConfig(new Region("ap-shanghai"));
    COSClient srcCosclient = new COSClient(cred, srcClientConfig);
    ExecutorService threadPool = Executors.newFixedThreadPool(2);
    // 传入一个threadpool, 若不传入线程池, 默认TransferManager中会生成一个单线程的线程池。
    TransferManager transferManager = new TransferManager(cosclient, threadPool);
    TransferManagerConfiguration transferManagerConfiguration = new TransferManagerConfiguration();
    transferManagerConfiguration.setMultipartCopyThreshold(5 * 1024 * 1024);
    transferManager.setConfiguration(transferManagerConfiguration);
    // 要拷贝的bucket region, 支持跨园区拷贝
    Region srcBucketRegion = new Region("ap-shanghai");
    // 源bucket, bucket名需包含appid
    String srcBucketName = "mysrcbucket-123456789";
    // 要拷贝的源文件
    String srcKey = "aaa/bbb.txt";
    // 目的bucket, bucket名需包含appid
    String destBucketName = "mydestbucekt-123456789";
    // 要拷贝的目的文件
    String destKey = "bbb/ccc.txt";
    ObjectMetadata objectMetadata = new ObjectMetadata();
    Map<String, String> userMeta = new HashMap<String, String>();
    userMeta.put("usermeta", "hello-mult-copy");
    objectMetadata.setUserMetadata(userMeta);
    CopyObjectRequest copyObjectRequest = new CopyObjectRequest(srcBucketRegion, srcBucketName, srcKey, destBucketName, destKey);
    System.out.println(copyObjectRequest.getDestinationBucketName());
    copyObjectRequest.setNewObjectMetadata(objectMetadata);
    try {
        Copy copy = transferManager.copy(copyObjectRequest, srcCosclient, null);
        // 返回一个异步结果copy, 可同步的调用waitForCopyResult等待copy结束, 成功返回CopyResult, 失败抛出异常.
        // showTransferProgress(copy);
        CopyResult copyResult = copy.waitForCopyResult();
        System.out.println(copyResult.getCrc64Ecma());
    } catch (CosServiceException e) {
        e.printStackTrace();
    } catch (CosClientException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    transferManager.shutdownNow();
    cosclient.shutdown();
}
Also used : TransferManager(com.qcloud.cos.transfer.TransferManager) COSCredentials(com.qcloud.cos.auth.COSCredentials) BasicCOSCredentials(com.qcloud.cos.auth.BasicCOSCredentials) BasicCOSCredentials(com.qcloud.cos.auth.BasicCOSCredentials) HashMap(java.util.HashMap) CosClientException(com.qcloud.cos.exception.CosClientException) COSClient(com.qcloud.cos.COSClient) CopyObjectRequest(com.qcloud.cos.model.CopyObjectRequest) TransferManagerConfiguration(com.qcloud.cos.transfer.TransferManagerConfiguration) CosServiceException(com.qcloud.cos.exception.CosServiceException) Copy(com.qcloud.cos.transfer.Copy) ExecutorService(java.util.concurrent.ExecutorService) Region(com.qcloud.cos.region.Region) ClientConfig(com.qcloud.cos.ClientConfig) ObjectMetadata(com.qcloud.cos.model.ObjectMetadata) CopyResult(com.qcloud.cos.model.CopyResult)

Example 19 with TransferManager

use of com.qcloud.cos.transfer.TransferManager in project cos-java-sdk-v5 by tencentyun.

the class ImageAuditingDemo method batchPostImageAuditing.

/**
 * 批量发送图片审核任务 使用sdk并发发送
 */
public static void batchPostImageAuditing(COSClient client) throws InterruptedException {
    List<ImageAuditingRequest> requestList = new ArrayList<>();
    ImageAuditingRequest request = new ImageAuditingRequest();
    request.setBucketName("demo-123456789");
    request.setObjectKey("1.png");
    request.setDetectType("all");
    requestList.add(request);
    request = new ImageAuditingRequest();
    request.setBucketName("demo-123456789");
    request.setObjectKey("1.jpg");
    request.setDetectType("all");
    requestList.add(request);
    // 传入一个threadpool, 若不传入线程池, 默认TransferManager中会生成一个单线程的线程池。
    ExecutorService threadPool = Executors.newFixedThreadPool(4);
    TransferManager transferManager = new TransferManager(client, threadPool);
    MultipleImageAuditingImpl multipleImageAuditing = transferManager.batchPostImageAuditing(requestList);
    multipleImageAuditing.waitForCompletion();
    List<ImageAuditingImpl> imageAuditingList = multipleImageAuditing.getImageAuditingList();
    for (ImageAuditingImpl imageAuditing : imageAuditingList) {
        System.out.println(imageAuditing.getState());
        System.out.println(imageAuditing.getResponse());
        System.out.println(imageAuditing.getErrMsg());
    }
    transferManager.shutdownNow();
    client.shutdown();
}
Also used : TransferManager(com.qcloud.cos.transfer.TransferManager) MultipleImageAuditingImpl(com.qcloud.cos.transfer.MultipleImageAuditingImpl) ArrayList(java.util.ArrayList) ExecutorService(java.util.concurrent.ExecutorService) BatchImageAuditingRequest(com.qcloud.cos.model.ciModel.auditing.BatchImageAuditingRequest) ImageAuditingRequest(com.qcloud.cos.model.ciModel.auditing.ImageAuditingRequest) ImageAuditingImpl(com.qcloud.cos.transfer.ImageAuditingImpl) MultipleImageAuditingImpl(com.qcloud.cos.transfer.MultipleImageAuditingImpl)

Aggregations

TransferManager (com.qcloud.cos.transfer.TransferManager)19 ExecutorService (java.util.concurrent.ExecutorService)16 CosClientException (com.qcloud.cos.exception.CosClientException)14 CosServiceException (com.qcloud.cos.exception.CosServiceException)14 COSClient (com.qcloud.cos.COSClient)13 ClientConfig (com.qcloud.cos.ClientConfig)13 BasicCOSCredentials (com.qcloud.cos.auth.BasicCOSCredentials)13 COSCredentials (com.qcloud.cos.auth.COSCredentials)13 Region (com.qcloud.cos.region.Region)13 File (java.io.File)13 CopyObjectRequest (com.qcloud.cos.model.CopyObjectRequest)8 GetObjectRequest (com.qcloud.cos.model.GetObjectRequest)8 PutObjectRequest (com.qcloud.cos.model.PutObjectRequest)7 UploadResult (com.qcloud.cos.model.UploadResult)7 Copy (com.qcloud.cos.transfer.Copy)7 Download (com.qcloud.cos.transfer.Download)7 Upload (com.qcloud.cos.transfer.Upload)7 MultipleFileDownload (com.qcloud.cos.transfer.MultipleFileDownload)6 MultipleFileUpload (com.qcloud.cos.transfer.MultipleFileUpload)6 ObjectMetadata (com.qcloud.cos.model.ObjectMetadata)5