tencent cloud

Feedback

Downloading Objects

Last updated: 2024-02-04 14:25:57

    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 the local file system.

    Advanced APIs (Recommended)

    Downloading an object (checkpoint restart)

    Feature description

    This API is used to download an object. It calls the GET Object API to download a small file in whole and a large file by byte range. For the parameters required, see those of the GET Object API.

    Method prototype

    public Qcloud\\Cos\\Client download(string $bucket, string $key, string $saveAs, array $options = array());
    Parameter
    Type
    Description
    Required
    bucket
    String
    Bucket name in the format of BucketName-APPID
    Yes
    key
    String
    Object key
    Yes
    saveAs
    String
    Local path to save the file
    Yes
    options
    Array
    Additional configuration items
    No
    options Parameter
    Type
    Description
    Required
    Progress
    Function
    Progress callback. $totalSize indicates the total size, and $downloadedSize indicates the downloaded size.
    No
    PartSize
    Int
    Minimum part size. Default value: 5 MB
    No
    Concurrency
    Int
    Concurrency. Default value: 10
    No
    ResumableDownload
    Bool
    Whether to enable checkpoint restart. Default value: False
    No
    ResumableTaskFile
    String
    Checkpoint file path. Default value: <saveAs.cosresumabletask>
    No

    Sample request

    <?php
    
    require dirname(__FILE__) . '/../vendor/autoload.php';
    
    $secretId = "SECRETID"; //Replace it with the actual `SecretId`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $secretKey = "SECRETKEY"; //Replace it with the actual `SecretKey`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $region = "ap-beijing"; //Replace it with the actual `region`, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket
    $cosClient = new Qcloud\\Cos\\Client(
    array(
    'region' => $region,
    'schema' => 'https', // Protocol header, which is http by default
    'credentials'=> array(
    'secretId' => $secretId ,
    'secretKey' => $secretKey)));
    $local_path = "/Users/xxx/Desktop/exampleobject.txt"; //Save it to the user’s local path
    
    $printbar = function($totalSize, $downloadedSize) {
    printf("downloaded [%d/%d]\\n", $downloadedSize, $totalSize);
    };
    
    try {
    $result = $cosClient->download(
    $bucket = 'examplebucket-1250000000', // Bucket name in the format of `BucketName-APPID`, which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket
    $key = 'exampleobject',
    $saveAs = $local_path,
    $options= array(
    'Progress' => $printbar, // Specify the progress
    'PartSize' => 10 * 1024 * 1024, //Part size
    'Concurrency' => 5, //Number of concurrent parts
    'ResumableDownload' => true, //Whether to enable checkpoint restart. It’s disabled by default.
    'ResumableTaskFile' => 'tmp.cosresumabletask' //Checkpoint file path. Default value: `<localpath>.cosresumabletask`
    )
    );
    // Request succeeded
    print_r($result);
    } catch (\\Exception $e) {
    // Request failed
    echo($e);
    }

    Batch downloading files (downloading a COS directory)

    Feature description

    This API is used to download a COS directory and the files in it to the local disk.

    Sample request

    <?php
    
    require dirname(__FILE__) . '/../vendor/autoload.php';
    
    $secretId = "SECRETID"; //Replace it with the actual `SecretId`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $secretKey = "SECRETKEY"; //Replace it with the actual `SecretKey`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $region = "ap-beijing"; //Replace it with the actual `region`, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket
    $cosClient = new Qcloud\\Cos\\Client(
    array(
    'region' => $region,
    'schema' => 'https', // Protocol header, which is http by default
    'credentials'=> array(
    'secretId' => $secretId ,
    'secretKey' => $secretKey)));
    
    $cos_path = 'cos/folder';
    $nextMarker = '';
    $isTruncated = true;
    
    while ($isTruncated) {
    try {
    $result = $cosClient->listObjects(array(
    'Bucket' => 'examplebucket-125000000', // Bucket name in the format of `BucketName-APPID`, which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket
    'Delimiter' => '/', //Delimiter: "/". Set the delimiter to "/" to list objects in the current directory. To list all objects, leave this parameter empty.
    'EncodingType' => 'url',// Encoding format, which indicates the `encoding-type` in requests
    'Marker' => 'prefix/picture.jpg',//Identifier of the initial object key
    'Prefix' => 'prfix/', //Set a prefix to indicate that the key of the listed object starts with the prefix.
    'MaxKeys' => 1000, // Set the maximum number of traversed objects (up to 1000 per `listObjects` request).
    ));
    } catch (\\Exception $e) {
    echo($e);
    }
    $isTruncated = $result['IsTruncated'];
    $nextMarker = $result['NextMarker'];
    foreach ( $result['Contents'] as $content ) {
    $cos_file_path = $content['Key'];
    $local_file_path = $content['Key'];
    // Splice a download path as needed
    try {
    $result = $cosClient->download(
    $bucket = 'examplebucket-1250000000', //Bucket name in the format of `BucketName-APPID`, which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket
    $key = $cos_file_path,
    $saveAs = $local_file_path
    );
    echo ($cos_file_path . "\\n");
    } catch ( \\Exception $e ) {
    echo($e);
    }
    }
    }

    Simple Download

    Downloading an object

    Feature description

    This API (GET Object) is used to download an object.

    Method prototype

    public Guzzle\\Service\\Resource\\Model getObject(array $args = array());

    Sample request

    Sample 1. Downloading a file

    <?php
    
    require dirname(__FILE__) . '/../vendor/autoload.php';
    
    $secretId = "SECRETID"; //Replace it with the actual `SecretId`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $secretKey = "SECRETKEY"; //Replace it with the actual `SecretKey`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $region = "ap-beijing"; //Replace it with the actual `region`, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket
    $cosClient = new Qcloud\\Cos\\Client(
    array(
    'region' => $region,
    'schema' => 'https', //Protocol header, which is http by default
    'credentials'=> array(
    'secretId' => $secretId ,
    'secretKey' => $secretKey)));
    $local_path = "/Users/xxx/Desktop/exampleobject.txt"; //Save it to the user’s local path
    
    try {
    $result = $cosClient->getObject(array(
    'Bucket' => 'examplebucket-1250000000', // Bucket name in the format of `BucketName-APPID`, which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket
    'Key' => 'exampleobject',
    'SaveAs' => $local_path,
    ));
    // Request succeeded
    } catch (\\Exception $e) {
    // Request failed
    echo($e);
    }

    Sample 2. Getting file content within a certain byte range

    <?php
    
    require dirname(__FILE__) . '/../vendor/autoload.php';
    
    $secretId = "SECRETID"; //Replace it with the actual `SecretId`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $secretKey = "SECRETKEY"; //Replace it with the actual `SecretKey`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $region = "ap-beijing"; //Replace it with the actual `region`, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket
    $cosClient = new Qcloud\\Cos\\Client(
    array(
    'region' => $region,
    'schema' => 'https', // Protocol header, which is http by default
    'credentials'=> array(
    'secretId' => $secretId ,
    'secretKey' => $secretKey)));
    
    try {
    $result = $cosClient->getObject(array(
    'Bucket' => 'examplebucket-1250000000', // Bucket name in the format of `BucketName-APPID`, which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket
    'Key' => 'exampleobject',
    'Range' => 'bytes=0-10'
    ));
    // Request succeeded
    print_r($result);
    } catch (\\Exception $e) {
    // Request failed
    echo($e);
    }

    Sample 3. Downloading a specified version of a file

    <?php
    
    require dirname(__FILE__) . '/../vendor/autoload.php';
    
    $secretId = "SECRETID"; //Replace it with the actual `SecretId`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $secretKey = "SECRETKEY"; //Replace it with the actual `SecretKey`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $region = "ap-beijing"; //Replace it with the actual `region`, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket
    $cosClient = new Qcloud\\Cos\\Client(
    array(
    'region' => $region,
    'schema' => 'https', // Protocol header, which is http by default
    'credentials'=> array(
    'secretId' => $secretId ,
    'secretKey' => $secretKey)));
    
    try {
    $result = $cosClient->getObject(array(
    'Bucket' => 'examplebucket-1250000000', // Bucket name in the format of `BucketName-APPID`, which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket
    'Key' => 'exampleobject',
    'VersionId' => 'exampleVersionId'
    ));
    // Request succeeded
    print_r($result);
    } catch (\\Exception $e) {
    // Request failed
    echo($e);
    }

    Sample 4. Downloading an object (limiting single-connection bandwidth)

    Note:
    For more information about the speed limits on object downloads, see Single-Connection Bandwidth Limit.
    <?php
    
    require dirname(__FILE__) . '/../vendor/autoload.php';
    
    $secretId = "SECRETID"; //Replace it with the actual `SecretId`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $secretKey = "SECRETKEY"; //Replace it with the actual `SecretKey`, which can be viewed and managed in the CAM console at https://console.tencentcloud.com/cam/capi
    $region = "ap-beijing"; //Replace it with the actual `region`, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket
    $cosClient = new Qcloud\\Cos\\Client(
    array(
    'region' => $region,
    'schema' => 'https', // Protocol header, which is http by default
    'credentials'=> array(
    'secretId' => $secretId ,
    'secretKey' => $secretKey)));
    
    try {
    $result = $cosClient->getObject(array(
    'Bucket' => 'examplebucket-125000000', // Bucket name in the format of `BucketName-APPID`, which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket
    'Key' => 'exampleobject',
    'SaveAs' => '/data/exampleobject',
    'TrafficLimit' => 8 * 1024 * 1024 // Limit the speed to 1 MB/s
    ));
    // Request succeeded
    print_r($result);
    } catch (\\Exception $e) {
    // Request failed
    echo($e);
    }
    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