tencent cloud

Feedback

Downloading Objects

Last updated: 2024-02-02 14:40:45

    Overview

    This document provides an overview of APIs and SDK code samples for downloading an object.
    API
    Operation
    Description
    Downloading an object
    Downloads an object to local
    Querying object metadata
    Queries the metadata of an object

    Downloading an object

    The download API allows you to pause, resume (via checkpoint restart), or cancel a download task.

    Sample code:

    // The advanced download API supports checkpoint restart. Therefore, a HEAD request will be sent before the download to obtain the file information.
    // If you are using a temporary key or accessing with a sub-account, ensure that your permission list includes HeadObject.
    
    // `TransferManager` supports checkpoint restart for download. You only need to ensure the consistency of parameters `bucket`, `cosPath`, and `savePath`.
    // Then the SDK will resume the download from where interrupted.
    
    // Get the `TransferManager`
    CosTransferManger transferManager = Cos().getDefaultTransferManger();
    //CosTransferManger transferManager = Cos().getTransferManger("newRegion");
    // Bucket name in the format of `BucketName-APPID` (`APPID` is required), which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket.
    String bucket = "examplebucket-1250000000";
    String cosPath = "exampleobject"; // Location identifier of the object in the bucket, i.e., the object key
    String downliadPath = "Absolute path of the local file"; // Absolute path of the local file
    
    // Callback for successful download
    successCallBack(result) {
    // TODO: Logic after successful download
    }
    // Callback for failed download
    failCallBack(clientException, serviceException) {
    // TODO: Logic after failed download
    if (clientException != null) {
    print(clientException);
    }
    if (serviceException != null) {
    print(serviceException);
    }
    }
    // Callback for the download status, through which you can check the task process
    stateCallback(state) {
    // todo notify transfer state
    }
    // Callback for the download progress
    progressCallBack(complete, target) {
    // todo Do something to download progress...
    }
    // Start the download
    TransferTask transferTask = await transferManager.download(bucket, cosPath, downliadPath,
    resultListener: ResultListener(successCallBack, failCallBack),
    stateCallback: stateCallback,
    progressCallBack: progressCallBack
    );
    // Pause the task
    transferTask.pause();
    // Resume the task
    transferTask.resume();
    // Cancel the task
    transferTask.cancel();

    Parameter description

    Parameter
    Description
    Type
    Required
    bucket
    Bucket name in the format of BucketName-APPID. For more information, see Bucket Overview.
    String
    Yes
    cosPath
    Object key, which uniquely identifies an object in a bucket. For example, if an object's access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/picture.jpg, its key is doc/picture.jpg.
    String
    Yes
    savePath
    Absolute local path to save the downloaded file
    String
    Yes
    versionId
    Version ID of the object to be downloaded
    String
    No
    trafficLimit
    Bandwidth limit for a single request in bit/s. Value range: 819200–838860800, i.e., 100 KB/s - 100 MB/s.
    Int
    No
    ResultListener
    Callback for the download result (including success and failure)
    ResultListener
    No
    StateCallBack
    Callback for the download status
    StateCallBack
    No
    ProgressCallBack
    Callback for the download progress
    ProgressCallBack
    No

    Response description

    Success: TransferTask is returned. You can pause, resume, or cancel the TransferTask. -Failure: An error occurs (such as authentication failure), with a CosXmlClientException or CosXmlServiceException exception reported in ResultListener's callback for failure. For more information, see Troubleshooting.
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support