功能说明
将OBS源桶指定路径下的所有对象同步到本地目标路径,使两边内容保持一致。这里 的增量同步有两层含义:1)增量,依次比较源对象和目标文件,只下载存在变化的源 对象;2)同步,命令执行完成后,保证OBS指定源桶指定路径是本地目标路径的子 集,即OBS源桶指定路径下的所有对象均能在本地目标路径下找到对应文件。
须知
● 同步下载时,请确保OBS桶中的源对象不发生变化,否则可能产生同步失败或者数 据不一致的问题。
● 如果待下载对象的存储类型为cold,必须首先恢复待下载对象,否则无法下载成 功。
● 同步下载每个对象时会对比本地对应路径的文件,仅在文件不存在,或者文件大小 与对象大小不一致,或者文件的最后修改时间早于对象的最后修改时间时进行下 载。
命令结构
● Windows操作系统
obsutil sync obs://bucket[/key] folder_url tempFileDir=xxx] dryRun] vlength] vmd5] j=1] p=1] threshold=52428800] ps=auto] include=*.xxx] exclude=*.xxx] timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
● macOS/Linux操作系统
./obsutil sync obs://bucket[/key] folder_url tempFileDir=xxx] dryRun] vlength] vmd5] j=1] p=1] threshold=52428800] ps=auto] include=*.xxx] exclude=*.xxx] timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
运行示例
● 以Windows操作系统为例,运行obsutil sync obs://bucket-test/temp d:\
temp,同步下载对象。
obsutil sync obs://bucket-test/temp d:\temp Parallel: 3 Jobs: 3
Threshold: 524288000 PartSize: 5242880 Exclude: Include:
VerifyLength: false VerifyMd5: false CheckpointDir: xxxx
OutputDir: xxxx
[======================================================] 100.00% 155.59 KB/s 0s Succeed count is: 6 Failed count is: 0
Metrics [max cost:153 ms, min cost:129 ms, average cost:92.00 ms, average tps:17.86]
Task id is: 3066a4b0-4d21-4929-bb84-4829c32cbd0f
● 更多运行示例,请参见同步下载示例。
参数说明
参数 约束 描述
folder_url 必选 本地文件夹路径。
bucket 必选 桶名。
参数 约束 描述
key 可选 待同步下载的对象名前缀。
规则如下:
● 如果该值为空,则将folder_url指定的文件夹下 的所有内容与整个桶的内容保持一致;
● 如果该值不为空,则将folder_url指定的文件夹 下的所有内容与桶内以该值作为对象名前缀的内
tempFileDir 附加参数,可 选
dryRun 附加参数,可 选
测试模式运行,不执行实际的下载操作。
vlength 附加参数,可
选 下载完成后,验证本地文件大小是否与桶中对象的 大小一致。
vmd5 附加参数,可
选 下载完成后,验证本地文件的MD5值是否与桶中对 象的MD5值一致。
说明桶中对象必须包含元数据x-obs-md5chksum,否则会忽
略MD5值校验。
p 附加参数,可
选
每个分段下载任务的最大并发数,默认为配置文件 中的defaultParallels。
threshold 附加参数,可 选
● 支持带容量单位配置,例如,配置1MB代表1048576 字节。
参数 约束 描述
● 支持带容量单位配置,例如,配置1MB代表1048576 字节。
● 支持配置为auto,此时obsutil会根据源对象大小自动 设置每个分段任务的段大小。
cpd 附加参数,可
选 生成断点记录文件的文件夹,默认为运行obsutil命 令的用户目录的子文件夹.obsutil_checkpoint。
exclude 附加参数,批 量下载时可选
● 建议使用引号传递该匹配模式(macOS/Linux操作系 统使用单引号,Windows操作系统使用双引号)防止
● 支持指定多个exclude参数,如exclude=*.xxx -exclude=*.xxx
参数 约束 描述 include 附加参数,批
量下载时可选 包含源对象的匹配模式,如:*.jpg。
● 首先执行exclude的匹配规则,如果待下载的对象名不 匹配exclude,则判断待下载的对象名是否匹配该参 数,如果匹配则下载该对象,否则跳过该文件的下 载。
须知
● 建议使用引号传递该匹配模式(macOS/Linux操作系 统使用单引号,Windows操作系统使用双引号)防止
● 支持指定多个include参数,如include=*.xxx -include=*.xxx
timeRange 附加参数,可 选
● 使用“time1-time2”,代表匹配的时间段,其中 time1必须小于等于time2,格式为
yyyyMMddHHmmss。
● 时间格式支持自动补全,例如yyyyMMdd等价于 yyyyMMdd000000,yyyyMM等价于
yyyyMM01000000。
● 使用“*-time2”,代表匹配最后修改时间在time2之 前的所有文件,使用“time1-*”,代表匹配最后修改
选 设置名称匹配模式(include、exclude)和时间匹 配模式(timeRange)对对象名以“/”结尾的对象 也生效。
参数 约束 描述
o 附加参数,可
选
生成结果清单文件的文件夹,命令执行完成后,会 在该文件夹下生成结果清单文件(可能包含成功结 果、失败结果和警告结果三个文件),默认为运行 obsutil命令的用户目录的子文件
夹.obsutil_output。
说明
● 结果清单文件命名规则:sync_{succeed | failed | warning}_report_时间_TaskId.txt。
● 单个结果清单文件默认情况下最大为30MB且最大可 保留的文件个数为1024,可在配置文件中通过 recordMaxLogSize和recordBackups分别配置。
● 当涉及多文件/文件夹时,如需确认失败任务的具体错 误信息,可参考结果清单文件夹下的失败结果清单文 件"sync_failed_report_时间_TaskId.txt"及日志路径下 的日志文件;
config 附加参数,可 选
运行当前命令时的自定义配置文件,可支持的配置 参数请参考配置参数说明。
e 附加参数,可
选
指定终端节点。
i 附加参数,可
选
指定用户的AK。
k 附加参数,可
选
指定用户的SK。
t 附加参数,可
选
指定用户的securitytoken。
响应结果
请参考上传对象的响应结果。