tencent cloud

Feedback

Uploading/Downloading/Copying Objects - cp

Last updated: 2024-11-01 20:59:19
    The cp command is used to upload, download, or copy objects.

    Command Syntax

    ./coscli cp <source_path> <destination_path> [flags]
    cp includes the following parameters:
    Parameter Format
    Description
    Example
    source_path
    Source file path, which can be a local path or a COS file path. The COS path is accessible by using the bucket alias or bucket name configured in the configuration file as detailed in Download and Installation Configuration. If you use the bucket name for access, you also need to include the endpoint flag.
    Local path: ~/example.txt
    COS file path specified with the bucket alias: cos://bucketalias/example.txt
    COS file path specified with the bucket name: cos://examplebucket-1250000000/example.txt
    destination_path
    Destination file path, which can be a local path or a COS file path. The COS path is accessible by using the bucket alias or bucket name configured in the configuration file as detailed in Download and Installation Configuration. If you use the bucket name for access, you also need to include the endpoint flag.
    Local path: ~/example.txt
    COS file path specified with the bucket alias: cos://bucketalias/example.txt
    COS file path specified with the bucket name: cos://examplebucket-1250000000/example.txt
    cp includes the following optional flags:
    Flag Abbreviation
    Flag Name
    Description
    None
    --include
    Includes specific objects.
    None
    --exclude
    Excludes specific objects.
    -r
    --recursive
    Specifies whether to traverse all objects in the directory recursively.
    None
    --storage-class
    Specifies the storage class of the uploaded file. Default value: STANDARD. For more information, see Storage Class Overview.
    None
    --part-size
    Part size in MB. Default value: 32 MB.
    None
    --thread-num
    Number of concurrent threads. Default value: 5.
    None
    --rate-limiting
    Speed limit for a single URL in MB/s. Value range: 0.1–100 MB/s.
    None
    --meta
    Metadata of the uploaded file, including certain HTTP standard attributes (HTTP Header) and custom metadata prefixed with x-cos-meta- (User Meta). The file metadata is in the format of header:value#header:value, such as Expires:2022-10-12T00:00:00.000Z#Cache-Control:no-cache#Content-Encoding:gzip#x-cos-meta-x:x.
    None
    --routines
    Specifies the number of files for concurrent upload or download of threads between files, with the default number being 3.
    None
    --fail-output
    This option determines whether to enable error output of files when uploads or downloads fail (when the default value is true, it is enabled). If it is enabled, failed file transfers will be recorded in the specified directory (if no directory is specified, the default one is ./coscli_output). If it is disabled, only the number of failed files will be output to the console.
    None
    --fail-output-path
    This option is used to specify the error output folder for recording failed uploads or downloads. By providing a custom folder path, you can control the location and name of the error output folder. If this option is not set, the default error log folder ./coscli_output will be used.
    None
    --retry-num
    Number of frequency limit retry times (default value is 0; No retry). 1-10 times can be selected. When multiple machines execute download operations at the same COS directory simultaneously, you can specify this parameter to retry and avoid frequency limit errors.
    None
    --err-retry-num
    Number of error retry times (default value is 0). 1-10 times are specified, or if the value is set to 0, no retry is performed.
    None
    --err-retry-interval
    Retry interval (only available when --err-retry-num is specified as 1-10). Specify a retry interval of 1-10 seconds. If it is not specified or set to 0, the value of each retry interval will be random among 1-10 seconds.
    None
    --only-current-dir
    Whether to only upload files in the current directory; ignore subdirectories and their content (false is set by default; not ignored).
    None
    --disable-all-symlink
    Whether to ignore the subfiles and subdirectories of all the soft links during upload (true is set by default; not uploaded).
    None
    --enable-symlink-dir
    Whether to upload subdirectories of soft links (false is set by default; not uploaded).
    None
    --disable-crc64
    Whether to disable the CRC64 data validation (false is set by default; validation enabled).
    No
    --disable-checksum
    The default value is false, verifying the CRC64 of the entire file. If set to true, only verify shard CRC64.
    Note:
    cp automatically uses concurrent upload/download for large objects.
    If an object is larger than --part-size, COSCLI will split the object into multiple parts according to --part-size and use --thread-num threads to concurrently upload/download the object.
    Each thread maintains a URL. For each URL, you can use the --rate-limiting parameter to limit the speed of a single URL. When concurrent upload/download is enabled, the total rate is --thread-num * --rate-limiting.
    If an object is uploaded/downloaded in parts, checkpoint restart will be enabled by default.
    --include and --exclude support standard regular expression syntax, so you can use them to filter out objects that meet specific criteria.
    When using zsh, you may need to add double quotes at both ends of the pattern string.
    ./coscli cp ~/test/ cos://bucket1/example/ -r --include ".*.txt" --meta=x-cos-meta-a:a#ContentType:text#Expires:2022-10-12T00:00:00.000Z
    When using commands in Windows CMD, note that the "——" character (Chinese dash) pasted into CMD will automatically change to "--", and you need to manually enter it.
    For other common options of this command (such as switching bucket and user account), see Common Options.

    Examples

    Upload

    Uploading a single object

    ./coscli cp ~/example.txt cos://bucket1/example.txt

    Uploading all objects in the local directory test to the example directory in the bucket1 bucket

    ./coscli cp ~/test/ cos://bucket1/example/ -r

    Uploading all MP4 objects in the local directory test to the example directory in the bucket1 bucket

    ./coscli cp ~/test/ cos://bucket1/example/ -r --include .*.mp4

    Uploading all non-MD objects in the local directory test to the example directory in the bucket1 bucket

    ./coscli cp ~/test/ cos://bucket1/example/ -r --exclude .*.md

    Uploading all non-MD and non-HTML objects in the local directory test to the example directory in the bucket1 bucket

    ./coscli cp ~/test/ cos://bucket1/example/ -r --exclude ".*.html|.*.md"

    Uploading all objects in the dir directory (containing the dirA, dirB, dirC, and dirD subdirectories) except the dirD directory

    ./coscli cp dir/ cos://bucket1/example/ -r --exclude dirD/.*

    Uploading all objects in the local directory test to the example directory in the bucket1 bucket using the ARCHIVE storage class

    ./coscli cp ~/test/ cos://bucket1/example/ -r --storage-class ARCHIVE

    Uploading the local file.txt file to the bucket1 bucket and setting the single-URL speed limit to 1.3 MB/s

    ./coscli cp ~/file.txt cos://bucket1/file.txt --rate-limiting 1.3

    Download

    Downloading a single object

    ./coscli cp cos://bucket1/example.txt ~/example.txt

    Downloading all objects in the example directory in the bucket1 bucket to the test directory

    ./coscli cp cos://bucket1/example/ ~/test/ -r

    Downloading all MP4 objects in the example directory in the bucket1 bucket to the test directory

    ./coscli cp cos://bucket1/example/ ~/test/ -r --include .*.mp4

    Downloading all non-MD objects in the example directory in the bucket1 bucket to the test directory

    ./coscli cp cos://bucket1/example/ ~/test/ -r --exclude .*.md

    Downloading all non-MD and non-HTML objects in the example directory in the bucket1 bucket to the test directory

    ./coscli cp cos://bucket1/example/ ~/test/ -r --exclude ".*.html|.*.md"

    Copy

    Copying a single object within a bucket

    ./coscli cp cos://bucket1/example.txt cos://bucket1/example_copy.txt

    Copying a single object across buckets

    ./coscli cp cos://bucket1/example.txt cos://bucket2/example_copy.txt

    Copying all objects in the example1 directory in bucket1 to the example2 directory in bucket2

    ./coscli cp cos://bucket1/example1/ cos://bucket2/example2/ -r

    Copying all MP4 objects in the example1 directory in bucket1 to the example2 directory in bucket2

    ./coscli cp cos://bucket1/example1/ cos://bucket2/example2/ -r --include .*.mp4

    Copying all non-MD objects in the example1 directory in bucket1 to the example2 directory in bucket2

    ./coscli cp cos://bucket1/example1/ cos://bucket2/example2/ -r --exclude .*.md
    
    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