tencent cloud

文档反馈

同步上传下载或拷贝文件 - sync

最后更新时间:2024-11-01 20:59:19

    命令格式

    sync 命令用于同步上传、下载或拷贝文件,与 cp 命令不同的是:sync 命令首先会对比同名文件的 crc64,如果 crc64 值相同则不进行传输。
    ./coscli sync <source_path> <destination_path> [flag]
    sync 命令包含以下参数:
    参数格式
    参数用途
    示例
    source_path
    源文件路径。可以为本地路径或 COS 文件路径。COS 路径支持使用 配置参数 中的桶别名,或桶名称进行访问。如使用桶名称访问,需要额外携带 endpoint flag。
    本地路径:~/example.txt
    使用桶别名指定 COS 文件路径:cos://bucketalias/example.txt
    使用桶名称指定 COS 文件路径:cos://examplebucket-1250000000/example.txt
    destination_path
    目的文件路径。可以为本地路径或 COS 文件路径。COS 路径支持使用 配置参数 中的桶别名,或桶名称进行访问。如使用桶名称访问,需要额外携带 endpoint flag。
    本地路径:~/example.txt
    使用桶别名指定 COS 文件路径:cos://bucketalias/example.txt
    使用桶名称指定 COS 文件路径:cos://examplebucket-1250000000/example.txt
    sync 命令包含以下可选 flag:
    flag 简写
    flag 全称
    flag 用途
    --include
    包含特定模式的文件
    --exclude
    排除特定模式的文件
    -r
    --recursive
    是否递归遍历文件夹下所有文件
    --storage-class
    指定上传文件的存储类型(默认 STANDARD),更多存储类型,请参见 存储类型概述
    --part-size
    文件分块大小(默认32MB,最大支持5GB)
    --thread-num
    文件分块并发线程数(默认并发5)
    --rate-limiting
    单链接速率限制(0.1 - 100MB/s)
    --snapshot-path
    指定保存上传或者下载文件时的快照信息所在的目录。在下一次上传或者下载文件时,coscli 会读取指定目录下的快照信息进行增量上传或者下载。本选项用来加速目录文件同步。
    --meta
    上传文件的元信息。包括部分 HTTP 标准属性(HTTP Header)以及以 x-cos-meta- 开头的用户自定义元数据(User Meta)。文件元信息格式为 header:value#header:value,示例为 Expires:2022-10-12T00:00:00.000Z#Cache-Control:no-cache#Content-Encoding:gzip#x-cos-meta-x:x
    --routines
    指定文件间并发上传或下载的线程数量,默认为3
    --fail-output
    此选项决定是否启用上传或下载失败时文件的错误输出(默认为true,开启)。如果启用,文件传输失败将被记录在指定目录内(如果没有指定,默认为./coscli_output)。如果禁用,只会将错误文件的数量输出到控制台。
    --fail-output-path
    此选项用于指定记录上传或下载失败文件的错误输出文件夹。通过提供自定义文件夹路径,您可以控制错误输出文件夹的位置和名称。如果未设置此选项,将使用默认的错误日志文件夹./coscli_output
    --retry-num
    限频重试次数(默认为0,不重试)。可选1-10次。当多台机器同时在同一个COS目录上执行下载操作时,可以通过指定此参数进行重试来规避限频错误。
    --err-retry-num
    错误重试次数(默认为0)。指定1-10次,或者设置为0表示不进行重试。
    --err-retry-interval
    重试间隔(仅在指定--err-retry-num1-10时可用)。指定1-10秒的重试间隔,如果不指定或设置为0,每次重试间隔将在1-10秒内的随机。
    --only-current-dir
    是否仅上传当前目录中的文件,忽略子目录及其内容(默认为false,不忽略)
    --disable-all-symlink
    是否上传时忽略所有软链接子文件和软链接子目录(默认为true,不上传)
    --enable-symlink-dir
    是否上传软链接的子目录(默认为false,不上传)
    --disable-crc64
    是否关闭 CRC64 数据验证。(默认为false,启用验证)
    --delete
    删除指定目标路径中的任何其他文件,仅保留此次同步的文件(默认为false,不删除)。建议在使用--delete选项之前启用版本控制,以防止意外删除数据。
    --backup-dir
    同步已删除文件的备份,用于保存目标端已删除但源端不存在的文件(仅下载时生效,且在--delete=true 时必传)。上传及桶拷贝请使用版本控制来恢复意外删除数据。
    --force
    强制操作,不提示确认。(默认为false
    --disable-checksum
    默认为 false,校验整个文件的 crc64。为 true 时仅校验分片 crc64
    说明:
    sync 命令在上传和下载大文件时会自动启用并发上传/下载。
    当文件大于 --part-size 时,COSCLI 会先将文件按 --part-size 进行切块,之后用 --thread-num 个线程并发地执行上传/下载任务。
    每个线程都会维护一个链接,对于每个链接,您可以使用 --rate-limiting 参数对单链接进行限速,当启用并发上传/下载时,总速率为 --thread-num * --rate-limiting
    当以分块形式上传/下载文件时,会默认开启断点续传。
    --include--exclude 支持标准正则表达式的语法,您可以使用它来过滤出符合特定条件的文件。
    使用 zsh 时,您可能需要在 pattern 串的两端加上双引号。
    snapshot-path 不要设置到为待迁移目录或其子目录。
    ./coscli sync ~/test/ cos://bucket1/example/ -r --include ".*.txt" --snapshot-path=/path/snapshot-path --meta=x-cos-meta-a:a#ContentType:text#Expires:2022-10-12T00:00:00.000Z
    用户在使用 sync 命令时,除了产生 PUT 请求费用,还有以下两种情况还会对云上文件有 HEAD 请求,而产生额外的费用:
    没有添加指定快照目录的参数(`--snapshot-path`),会产生 HEAD 请求费用。
    已添加指定快照目录参数(`--snapshot-path`)且属于首次生成快照目录,会产生 HEAD 请求费用。若非首次生成的快照目录则不会产生额外的请求费用。
    关于此命令的其他通用选项(例如切换存储桶、切换用户账号等),请参见 通用选项 文档。

    操作示例

    同步上传文件

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

    同步下载文件

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

    桶内同步拷贝文件

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

    跨桶同步拷贝文件

    ./coscli sync cos://bucket1/example.txt cos://bucket2/example_copy.txt
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持