全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

同步目录(sync)

最近更新时间:2025-11-07 14:51:30

该命令用于将本地文件目录或者KS3 Prefix从源端同步到目的端。

不支持本地目录之间的同步。

sync命令和cp命令相似:同样支持从本地文件系统上传文件到ks3,从ks3下载Object到本地文件系统,在ks3上进行Object拷贝;用于源端和目的端数据同步。

sync命令和cp命令不同之处如下:

  1. 当输入--delete选项时,该命令会自动删除目的端存在而源端不存在的Object或者移走本地文件。如果目的端是ks3,则会删除多余的Object;如果目的端是本地文件,则会移走本地多余的文件。

    在对sync命令不熟悉之前,请慎用--delete

  2. sync强制是以recursive方式遍历文件或者Object的,所以不用输入-r --recursive

  3. 当源端是ks3://bucket/prefix,sync命令会自动在prefix后面加上字符 ‘/’,但是cp命令不会。当目的端是ks3://bucket/prefix,sync命令会在prefix后面加上字符 ‘/’;cp命令在–recursive被输入时也会在prefix后面加上字符’/’。

参数

说明

--delete

表示需要删除或者移走目的端存在而源端不存在的Object或者文件。

--backup-dir

该选项表示从ks3同步到本地目录时,用于备份目的端文件的目录,不能是目的端目录的子目录,如果输入了--delete,该选项必须输入。

其他选项说明、sync命令用法和cp命令相同。

命令格式

# 将本地目录同步到ks3 prefix
ks3util sync local_dir ks3://bucketname[/prefix] 
[-f] 
[-u] 
[--sse-algorithm <value>]
[--delete] 
[--backup-dir]
[--disable-crc64]
[--dry-run]
[--recover <value>]
[--disable-temp-file]
[--list-parallel <value>]
[--list-depth <value>]
[--list-type <value>]
[--list-before-upload]
[--output-dir <value>]

参数说明

参数

说明

local_dir

本地目录。

bucketname

操作的桶名。

prefix

操作的对象前缀。

-f, --force

强制操作,不进行询问提示。

-u, --update

更新操作,只有当目标文件不存在,或源文件的最后修改时间晚于目标文件时,KS3Util才会执行上传操作。

--sse-algorithm

设置服务端加密算法,可选值:AES256。

--delete

表示需要删除或者移走目的端存在而源端不存在的Object或者文件。

--backup-dir

从ks3同步到本地目录时,用于备份目的端文件的目录,不能是目的端目录的子目录,如果输入了--delete,该选项必须输入。

--disable-crc64

关闭CRC64数据校验。默认情况下,KS3Util进行数据传输时都会打开CRC64校验。

--dry-run

测试模式运行,不执行实际操作,用于验证流程的正确性。

--recover

待恢复失败任务的任务ID。指定该选项时表示恢复失败的任务,此时不需要指定源地址和目标地址,待重传的文件会从失败结果清单中读取。

--disable-temp-file

下载文件时,将不再生成带 .temp 后缀的临时文件,而是直接创建并写入目标文件。该参数适用于将大量小文件(KB 级别)下载至 NAS 网络存储时 TPS(每秒完成数)较低的场景。

1. 启用该参数后,若任务中断或文件下载失败,会产生不完整的文件。

2. 启用该参数后,使用 -u 进行增量下载时,将始终基于 CRC64 校验已下载的文件内容。

3. 若关闭此参数并使用增量下载,将会依据最后修改时间跳过这些不完整的文件,因此请避免这样操作。

--list-parallel

扫描文件的并发数,默认值:1,取值范围:1-100。

--list-depth

并行扫描的最大深度,超过此深度的目录将不再并行扫描,默认值:1,取值范围:1-100。

假设源目录为prefix/,而该目录存在以下结构:

prefix/aa/

prefix/aa/1/、prefix/aa/2/

prefix/bb/

prefix/bb/1/、prefix/bb/2/

值为 1 代表使用 delimiter=/ 扫描顶层(prefix/),获取到 prefix/aa/,prefix/bb/后,二者不再使用 delimiter=/ 进行扫描。

值为 2 代表获取到 prefix/aa/,prefix/bb/ 后,二者仍使用 delimiter=/ 进行扫描,再得到的结果不再使用 delimiter=/ 进行扫描。

--list-type

上传时指定列举文件使用的方法。默认值:1,可选值:1|2。当指定为其他值时,等效于1。

--list-before-upload

扫描完全部文件后再上传,只有上传目录时可以使用该选项。使用该选项时,KS3Util会先扫描全部文件并将路径保存在文本文件中,上传时会从该文件中读取待上传文件路径,不会再并行执行列举文件操作。

--output-dir

输出文件的保存目录,包含批量操作时生成的清单文件,扫描生成的文件列表。默认值:ks3util_output(工具当前执行目录的ks3util_output目录下)。

除上述的功能参数,关于Util支持的通用选项参数,详情请参考通用选项&过滤规则文档。

使用示例

  • 示例一:从本地目录同步到ks3。

    ./ks3util sync ./test_dir ks3://samplebucket/test_sync/ -u -f
    
    # 同步并删除ks3上多余的文件
    ./ks3util sync ./test_dir ks3://samplebucket/test_sync/ -u -f --delete
    
    #从本地目录同步到ks3,指定加密算法
    ./ks3util sync ./test_dir ks3://samplebucket/test_sync/ -u -f --sse-algorithm AES256

    示例二:从ks3同步到本地目录。

    ./ks3util sync ks3://samplebucket/test_sync/ ./test_dir -u -f
    
    # 同步并移动本地目录多余的文件到./backup目录
    ./ks3util sync ks3://samplebucket/test_sync/ ./test_dir -u -f --delete --backup-dir ./backup
  • 示例三:从ks3同步到ks3。

    ./ks3util sync ks3://samplebucket/test_sync/ ks3://samplebucket/test_sync_2/ -u -f
    
    # 同步并删除目的端上多余的文件
    ./ks3util sync ks3://samplebucket/test_sync/ ks3://samplebucket/test_sync_2/ -u -f --delete
  • 示例四:从本地目录同步到ks3,测试模式运行。

    ./ks3util sync ./test_dir ks3://samplebucket/test_sync/ -u -f --dry-run
  • 示例五:从ks3同步到本地目录,不生成临时文件,若本地已存在同名文件,则覆盖。

    ./ks3util sync ks3://samplebucket/test_sync/ ./test_dir -u -f --disable-temp-file
  • 示例六:通过任务ID恢复失败的任务。

    ./ks3util sync --recover fcab4805-ee1e-4d8f-b313-e0c4d8733266 -f
  • 示例七:从ks3同步到本地目录,设置扫描并发数为5,最大并发扫描深度为1。

    ./ks3util sync ks3://samplebucket/test_sync/ ./test_dir -f --list-parallel 5 --list-depth 1
  • 示例八:从本地目录同步到ks3,更换扫描文件的方式。

    ./ks3util sync ./test_dir ks3://samplebucket/test_sync/ -f --list-type 2
  • 示例九:从本地目录同步到ks3,使用扫描完全部文件后再上传的方式。

    ./ks3util sync ./test_dir ks3://samplebucket/test_sync/ -f --list-before-upload

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈