华为云用户手册

  • 修订记录 发布日期 修订记录 2024-01-19 第二十二次正式发布。 本次更新说明如下: 常见问题新增Windows操作系统下,下载对象时发现本地和云上对象数量不一致章节。 2023-12-15 第二十一次正式发布。 本次更新说明如下: 常见问题新增是否支持列举特殊字符对象章节。 2023-10-27 第二十次正式发布。 本次更新说明如下: 更新配置文件章节增加以Linux操作系统为例的运行示例。 2021-09-07 第十九次正式发布: 本次更新说明如下: 初始化配置章节补充使用临时ak、sk、securityToken进行初始化的说明。 2021-04-28 第十八次正式发布: 本次更新说明如下: 列举命令新增-format参数。当前可选值[default],指定列举结果在一行显示。 2021-03-22 第十七次正式发布: 本次更新说明如下: 优化对结果清单文件的说明。 2020-12-31 第十六次正式发布: 本次更新说明如下: 最佳实践新增“使用obsutil实现客户端跨区域复制”章节。 2020-09-30 第十五次正式发布: 本次更新说明如下: 新增stat命令的-bf参数,支持指定显示桶的存储用量、对象大小字节数时的显示格式。 2020-05-31 第十四次正式发布: 本次更新说明如下: 新增policy导入导出功能,支持put,get,delete三种方式,分别代表设置,获取,删除桶策略。 支持指定多个include、exclude参数以配置多条匹配规则。 新增update命令,支持在线检查并更新版本。 新增ls -failed命令,支持列举结果清单文件夹中cp命令及sync命令对应的失败结果清单文件,支持设置-o参数指定结果清单文件夹路径。 恢复上传/下载/复制任务时支持指定-clear参数,代表恢复任务完成后删除已恢复任务对应的失败结果清单文件。 2020-02-20 第十三次正式发布: 本次更新说明如下: 新增cp、rm等命令的-i、-k、-e、-t用户身份信息选项,sign增加-i、-k、-endpoint、-t选项,restore增加-i、-k、-e、-token选项。 2020-02-04 第十二次正式发布: 本次更新说明如下: 新增上传下载的排除文件夹示例。 2019-12-10 第十一次正式发布: 本次更新说明如下: 新增上传和同步上传的at选项。 2019-11-19 第十次正式发布: 本次更新说明如下: 调整命令展示结构。 修改“下载obsutil”章节,名称改为“下载和安装obsutil”。 “上传示例”新增“断点续传”和“增量上传”示例。 “创建文件夹”新增创建同名文件夹的须知。 2019-10-30 第九次正式发布: 本次更新说明如下: 最佳实践新增“使用obsutil实现目录分享”章节。 对象相关命令新增“创建目录分享的授权码”章节。 对象相关命令新增“授权码列举对象”章节。 对象相关命令新增“授权码下载对象”章节。 常见示例新增“删除桶内全部分段上传任务”章节。 2019-10-15 第八次正式发布: 本次更新说明如下: 最佳实践新增“利用obsutil帮助命令查找工具功能”章节。 最佳实践新增“为obsutil配置自动获取访问密钥”章节。 下载obsutil章节,更新下载表格。 2019-08-15 第七次正式发布: 本次更新说明如下: 更新obsutil性能调优最佳实践中关于defaultParallels的算法。 更新初始化配置中连通性检查的说明。 最佳实践新增“为obsutil配置HTTP代理”章节。 2019-07-17 第六次正式发布: 本次更新说明如下: 下载obsutil章节,新增arm64版本下载地址。 配置参数说明章节,新增新特性的配置参数。 最佳实践新增“利用obsutil进行断点续传”章节。 最佳实践新增“利用obsutil上传软链接”章节。 2019-05-20 第五次正式发布。 本次更新说明如下: 支持批量上传多个文件或文件夹。 支持在运行单个命令时使用自定义配置文件。 支持客户端跨区域复制。 支持移动对象。 新增“问题定位”章节。 2019-03-30 第四次正式发布。 本次更新说明如下: 新增新建文件夹功能。 新增生成对象的下载链接功能。 在上传、下载、复制文件夹时,支持按时间段匹配文件。 新增“obsutil性能调优最佳实践”章节。 2019-03-01 第三次正式发布。 本次更新说明如下: 创建桶时支持指定桶的可用区。 支持以xml格式配置桶或对象的访问策略。 支持查询桶和对象的访问策略。 优化了部分命令。 2019-01-31 第二次正式发布。 本次更新说明如下: 新增设置对象属性功能。 新增同步上传、下载、复制对象功能。 新增归档日志文件功能。 优化了部分命令描述。 新增“将obsutil设为系统内置命令”最佳实践。 2019-01-04 第一次正式发布。
  • 功能说明 将源桶指定路径下的所有对象同步到目标桶指定路径,使两边内容保持一致。这里的增量同步有两层含义:1)增量,依次比较源对象和目标对象,只复制存在变化的源对象;2)同步,命令执行完成后,保证源桶指定路径是目标桶指定路径的子集,即源桶指定路径下的所有对象均能在目标桶中找到对应对象。 同步复制对象时,请确保OBS桶中的源对象不发生变化,否则可能产生同步失败或者数据不一致的问题。 如果被复制对象的存储类型为cold,必须首先恢复被复制对象,否则无法复制成功。 复制时需要有被复制对象的读权限和目标桶的写权限。 如果没有开启客户端跨区域复制模式,同步复制的源桶和目标桶必须在同一个区域(Region)。 同步复制每个源对象时会对比目标桶中对应路径的目标对象,仅在目标对象不存在,或者目标对象大小与源对象大小不一致,或者目标对象的最后修改时间早于源对象的最后修改时间时进行复制。 如果源桶是并行文件系统(POSIX),则目标桶不能是对象存储桶。
  • 运行示例 以Windows操作系统为例,运行obsutil sync obs://bucket-test/temp/ obs://bucket-test2/temp/,同步复制对象。 obsutil sync obs://bucket-test/temp/ obs://bucket-test2/temp Parallel: 3 Jobs: 3 Threshold: 524288000 PartSize: 5242880 Exclude: Include: VerifyLength: false VerifyMd5: false CheckpointDir: xxxx OutputDir: xxxx [=============================================================] 100.00% 10/s 0s Succeed count is: 5 Failed count is: 0 Metrics [max cost:298 ms, min cost:192 ms, average cost:238.00 ms, average tps:9.71] Task id is: 0476929d-9d23-4dc5-b2f8-0a0493f027c5 更多运行示例,请参见同步复制示例。
  • 命令结构 Windows操作系统 obsutil sync obs://srcbucket[/key] obs://dstbucket[/dest] [-dryRun] [-crr] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-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://srcbucket[/key] obs://dstbucket[/dest] [-dryRun] [-crr] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 参数说明 参数 约束 描述 srcbucket 必选 源桶名。 dstbucket 必选 目标桶名。 dest 可选 目标对象名前缀。 说明: 如果该值不为空且不以“/”结尾,则工具会自动为该值末尾加上“/”作为目标对象名前缀。 key 可选 源对象名前缀。 规则如下: 如果该值为空,则将目标桶内满足目标对象名前缀的所有对象与源桶中的所有对象保持一致; 如果该值不为空,则将目标桶内满足目标对象名前缀的所有对象与源桶内满足源对象名前缀的所有对象保持一致。 说明: 如果该值不为空且不以“/”结尾,则工具会自动为该值末尾加上“/”作为源对象名前缀。 请参考同步复制示例理解该参数的使用方式。 dryRun 附加参数,可选 测试模式运行,不执行实际的复制操作。 crr 附加参数,可选 复制时使用客户端跨区域复制模式,从通过数据流的方式从源桶直接复制数据到目标桶,且两个桶可以是任意两个OBS服务的桶。 说明: 若设置了该参数,必须确保更新了配置文件中客户端跨区域复制的相关配置信息,具体可参考更新配置文件。 复制时源桶对应的配置信息为配置文件中的:akCrr/skCrr/tokenCrr/endpointCrr,目标桶对应的配置信息为配置文件中的:ak/sk/token/endpoint。 须知: 开启跨区域复制后,因为会占用执行命令主机上传和下载的双向带宽、CPU和内存等资源,可能会影响执行命令主机的性能。 vlength 附加参数,可选 复制完成后,验证目标桶对象大小是否与源桶中对象的大小一致。 说明: 必须与crr参数配合使用。 vmd5 附加参数,可选 复制完成后,验证目标桶的MD5值是否与源桶中对象的MD5值一致。 说明: 必须与crr参数配合使用。 源桶中对象必须包含元数据x-obs-meta-md5chksum,否则会忽略MD5值校验。 MD5值校验通过后,会将该值设置为目标对象元数据x-obs-meta-md5chksum,用于下载或复制时校验MD5。 p 附加参数,可选 每个分段复制任务的最大并发数,默认为配置文件中的defaultParallels。 threshold 附加参数,可选 开启分段复制任务的阈值,单位:字节,默认为配置文件中的defaultBigfileThreshold。 说明: 如果待复制的源对象小于该阈值,则使用直接复制模式;否则使用分段复制模式。 直接复制模式不会产生断点记录文件,不支持断点续传。 支持带容量单位配置,例如,配置1MB代表1048576字节。 acl 附加参数,可选 复制对象时可指定的目标对象的预定义访问策略。支持的值: private public-read public-read-write bucket-owner-full-control 说明: 以上四个值分别对应:私有读写、公共读、公共读写、桶拥有者完全控制,四种预定义访问策略。 sc 附加参数,可选 复制对象时可指定的目标对象的存储类型。支持的值: standard:标准存储,访问时延低、吞吐量高,适用于有大量热点文件(平均一个月多次)或小文件(小于1MB)。 warm:低频访问存储,可用性略低于standard,适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景。 cold:归档存储,安全、持久且成本极低,适用于很少访问(平均一年访问一次)数据的业务场景。 meta 附加参数,可选 复制对象时可指定的目标对象的自定义元数据。格式为:key1:value1#key2:value2#key3:value3。 说明: 以上值表示复制对象完成后,桶内目标对象包含三组自定义元数据,分别为:key1:value1、key2:value2、key3:value3。 fs 附加参数,可选 是否使用并行文件系统的列举方式,如果桶是并行文件系统,推荐加上该参数。 注意: 该列举方式会因为目录结构,耗时会差别很大。 该参数开启后,会忽略marker和limit值,统计桶或者并行文件系统或者指定目录的大小。 Util 5.5.12版本及以上支持该参数。 ps 附加参数,可选 每个分段复制任务的段大小,单位:字节,取值范围是100KB~5GB,默认为配置文件中的defaultPartSize。 说明: 支持带容量单位配置,例如,配置1MB代表1048576字节。 支持配置为auto,此时obsutil会根据源对象大小自动设置每个分段任务的段大小。 cpd 附加参数,可选 生成断点记录文件的文件夹,默认为运行obsutil命令的用户目录的子文件夹.obsutil_checkpoint。 说明: 每个分段复制任务会产生唯一对应的断点记录文件并保存至该文件夹的copy子文件夹下,分段任务执行成功后,对应的断点记录文件会被自动删除;分段任务执行失败或被中断后,下次执行该分段任务时会尝试通过对应的断点记录文件恢复任务。 j 附加参数,批量复制时可选 同步复制时的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 exclude 附加参数,批量复制时可选 不包含源对象的匹配模式,如:*.txt。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符,例如abc*.txt代表匹配以abc开头以.txt结尾的任意文件。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 如果待复制的对象名匹配该参数,则跳过该对象的复制。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于对象全路径(含从根路径开始的对象前缀和对象名,例如,桶内对象路径为obs://bucket/src1/src2/test.txt,则对象的全路径为src1/src2/test.txt)。 该匹配模式仅适用于对象名非“/”结尾的对象。 支持指定多个exclude参数,如-exclude=*.xxx -exclude=*.xxx include 附加参数,批量复制时可选 包含源对象的匹配模式,如:*.jpg。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 首先执行exclude的匹配规则,如果待复制的对象名不匹配exclude,则判断待复制的对象名是否匹配该参数,如果匹配则复制该对象,否则跳过该文件的复制。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于对象全路径(含从根路径开始的对象前缀和对象名,例如,桶内对象路径为obs://bucket/src1/src2/test.txt,则对象的全路径为src1/src2/test.txt)。 该匹配模式仅适用于对象名非“/”结尾的对象。 支持指定多个include参数,如-include=*.xxx -include=*.xxx timeRange 附加参数,可选 同步复制对象时的时间段匹配模式,仅复制最后修改时间在该时间段内的对象。 该匹配模式优先级低于对象名匹配模式:exclude和include,优先执行对象名匹配模式后才会执行该匹配模式。 说明: 使用“time1-time2”,代表匹配的时间段,其中time1必须小于等于time2,格式为yyyyMMddHHmmss。 时间格式支持自动补全,例如yyyyMMdd等价于yyyyMMdd000000,yyyyMM等价于yyyyMM01000000。 使用“*-time2”,代表匹配最后修改时间在time2之前的所有文件,使用“time1-*”,代表匹配最后修改时间time1之后的所有文件。 须知: 该匹配模式表示的时间是UTC时间。 该匹配模式仅适用于对象名非“/”结尾的对象。 mf 附加参数,可选 设置名称匹配模式(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。
  • 运行示例 以Windows操作系统为例,运行obsutil chattri obs://bucket-test/key -acl=public-read,设置对象的访问策略为公共读。 obsutil chattri obs://bucket-test/key -acl=public-read Set the acl of object [key] in the bucket [bucket-test] to [public-read] successfully, request id [04050000016836DDFA73B2B5320E2651] 以Windows操作系统为例,运行obsutil chattri obs://bucket-test -r -f -acl=public-read,批量设置桶内所有对象的访问策略为公共读。 obsutil chattri obs://bucket-test -r -f -acl=public-read [------------------------------------------------] 100.00% tps:155.15 5/5 233ms Succeed count is: 5 Failed count is: 0 Metrics [max cost:177 ms, min cost:53 ms, average cost:102.40 ms, average tps:20.41] Task id is: 9d7f73ff-f747-4fdd-9b2a-815ba2dc3b07
  • 命令结构 Windows操作系统 设置单个对象属性 obsutil chattri obs://bucket/key [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 批量设置对象属性 obsutil chattri obs://bucket[/key] -r [-f] [-v] [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] macOS/Linux操作系统 设置单个对象属性 ./obsutil chattri obs://bucket/key [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 批量设置对象属性 ./obsutil chattri obs://bucket[/key] -r [-f] [-v] [-meta=aaa:bbb#ccc:ddd] [-sc=xxx] [-acl=xxx] [-aclXml=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 运行示例 以Windows操作系统为例,运行obsutil restore obs://bucket-test/key,恢复单个存储类型为cold的对象。 obsutil restore obs://bucket-test/key Start to restore object [key] in the bucket [bucket-test] successfully! 以Windows操作系统为例,运行obsutil restore obs://bucket-test -r -f,批量恢复桶中所有的存储类型为cold的对象。 obsutil restore obs://bucket-test -r -f [================================================] 100.00% 3s Succeed count is: 12 Failed count is: 0 Metrics [max cost:264 ms, min cost:54 ms, average cost:119.33 ms, average tps:19.70] Task id is: 96f104ee-d0bf-40ff-95dd-31dec0d8f4f4
  • 命令结构 Windows操作系统 恢复对象 obsutil restore obs://bucket/key [-d=1] [-t=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx] 批量恢复对象 obsutil restore obs://bucket[/key] -r [-f] [-v] [-d=1] [-t=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx] 批量恢复指定目录下的所有对象 obsutil restore obs://bucket/folder/ -r [-f] [-v] [-d=1] [-t=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx] macOS/Linux操作系统 恢复对象 ./obsutil restore obs://bucket/key [-d=1] [-t=xxx] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx] 批量恢复对象 ./obsutil restore obs://bucket[/key] -r [-f] [-v] [-d=1] [-t=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx] 批量恢复指定目录下的所有对象 ./obsutil restore obs://bucket/folder/ -r [-f] [-v] [-d=1] [-t=xxx] [-o=xxx] [-j=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-token=xxx]
  • 参数说明 参数 约束 描述 bucket 必选 桶名。 key 恢复单个存储类型为cold的对象时必选 批量恢复存储类型为cold的对象时可选 待恢复的对象名,或批量恢复的对象名前缀。 说明: 批量恢复时,如果该值为空,则表示恢复桶内所有存储类型为cold的对象。 d 附加参数,可选 存储类型为cold的对象恢复后的保存时间,单位:天,取值范围是1~30。默认为1。 t 附加参数,可选 恢复选项。支持的值: standard expedited 说明: expedited表示快速恢复对象,归档存储恢复耗时1~5 min。 standard表示标准恢复对象,归档存储恢复耗时3~5 h。 不设置该选项时,默认使用expedited模式。 versionId 附加参数,恢复单个cold存储对象时可选 待恢复cold存储对象的版本号。 fs 附加参数,可选 是否使用并行文件系统的列举方式,如果桶是并行文件系统,推荐加上该参数。 注意: 该列举方式会因为目录结构,耗时会差别很大。 该参数开启后,会忽略marker和limit值,统计桶或者并行文件系统或者指定目录的大小。 Util 5.5.12版本及以上支持该参数。 fr 附加参数,恢复单个cold存储对象时可选 恢复单个cold存储对象时生成结果清单文件。 f 附加参数,批量恢复cold存储对象时可选 强制操作,不进行询问提示。 r 附加参数,批量恢复cold存储对象时必选 按指定的对象名前缀批量恢复cold存储对象。 v 附加参数,批量恢复cold存储对象时可选 按指定的对象名前缀批量恢复多版本cold存储对象。 o 附加参数,可选 生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(可能包含成功结果和失败结果两个文件),默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。 说明: 结果清单文件命名规则:restore_{succeed | failed}_report_时间_TaskId.txt。 单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024,可在配置文件中通过recordMaxLogSize和recordBackups分别配置。 j 附加参数,批量恢复cold存储对象时可选 批量恢复cold存储对象的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 token 附加参数,可选 指定用户的securitytoken。
  • 参数说明 参数 约束 描述 recover 附加参数,必选 待恢复复制任务结果清单文件的任务号。 说明: 任务号(TaskId)可在每次复制任务运行完毕后获取,或者通过结果清单文件名查询(文件名除去后缀.txt后的后36位)。 待恢复的复制任务会从结果清单的文件夹中查找,结果清单文件夹的路径参考附加参数o。 dryRun 附加参数,可选 测试模式运行,不执行实际的上传操作。 crr 附加参数,可选 复制时使用客户端跨区域复制模式,从通过数据流的方式从源桶直接复制数据到目标桶,且两个桶可以是任意两个OBS服务的桶。 说明: 若设置了该参数,必须确保更新了配置文件中客户端跨区域复制的相关配置信息,具体可参考更新配置文件。 复制时源桶对应的配置信息为配置文件中的:akCrr/skCrr/tokenCrr/endpointCrr,目标桶对应的配置信息为配置文件中的:ak/sk/token/endpoint。 须知: 开启跨区域复制后,因为会占用执行命令主机上传和下载的双向带宽、CPU和内存等资源,可能会影响执行命令主机的性能。 vlength 附加参数,可选 复制完成后,验证目标桶对象大小是否与源桶中对象的大小一致。 说明: 必须与crr参数配合使用。 vmd5 附加参数,可选 复制完成后,验证目标桶的MD5值是否与源桶中对象的MD5值一致。 说明: 必须与crr参数配合使用。 源桶中对象必须包含元数据x-obs-meta-md5chksum,否则会忽略MD5值校验。 MD5值校验通过后,会将该值设置为目标对象元数据x-obs-meta-md5chksum,用于下载或复制时校验MD5。 u 附加参数,可选 增量复制操作,设置该参数后,复制每个源对象时会对比目标桶中对应路径的目标对象,仅在目标对象不存在,或者目标对象大小与源对象大小不一致,或者源对象的最后修改时间晚于目标对象的最后修改时间时进行复制。 注意: 在比较每个本地文件与桶内对象差异时,会产生一次HEAD请求费用。 p 附加参数,可选 每个分段复制任务的最大并发数,默认为配置文件中的defaultParallels。 threshold 附加参数,可选 开启分段复制任务的阈值,单位:字节,默认为配置文件中的defaultBigfileThreshold。 说明: 如果待复制的源对象小于该阈值,则使用直接复制模式;否则使用分段复制模式。 直接复制模式不会产生断点记录文件,不支持断点续传。 支持带容量单位配置,例如,配置1MB代表1048576字节。 acl 附加参数,可选 复制对象时可指定的目标对象的预定义访问策略。支持的值: private public-read public-read-write 说明: 以上三个值分别对应:私有读写、公共读、公共读写,三种预定义访问策略。 sc 附加参数,可选 复制对象时可指定的目标对象的存储类型。支持的值: standard:标准存储,访问时延低、吞吐量高,适用于有大量热点文件(平均一个月多次)或小文件(小于1MB)。 warm:低频访问存储,可用性略低于standard,适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景。 cold:归档存储,安全、持久且成本极低,适用于很少访问(平均一年访问一次)数据的业务场景。 meta 附加参数,可选 复制对象时可指定的目标对象的自定义元数据。格式为:key1:value1#key2:value2#key3:value3。 说明: 以上值表示复制对象完成后,桶内目标对象包含三组自定义元数据,分别为:key1:value1、key2:value2、key3:value3。 ps 附加参数,可选 每个分段复制任务的段大小,单位:字节,取值范围是100KB~5GB,默认为配置文件中的defaultPartSize。 说明: 支持带容量单位配置,例如,配置1MB代表1048576字节; 支持配置为auto,此时obsutil会根据源对象大小自动设置每个分段任务的段大小。 cpd 附加参数,可选 生成断点记录文件的文件夹,默认为运行obsutil命令的用户目录的子文件夹.obsutil_checkpoint。 说明: 每个分段复制任务会产生唯一对应的断点记录文件并保存至该文件夹的copy子文件夹下,分段任务执行成功后,对应的断点记录文件会被自动删除;分段任务执行失败或被中断后,下次执行该分段任务时会尝试通过对应的断点记录文件恢复任务。 f 附加参数,可选 强制操作,不进行询问提示。 j 附加参数,可选 批量复制任务的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 exclude 附加参数,可选 不包含源对象的匹配模式,如:*.txt。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符,例如abc*.txt代表匹配以abc开头以.txt结尾的任意文件。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 如果待复制的对象名匹配该参数,则跳过该对象的复制。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于对象全路径(含从根路径开始的对象前缀和对象名,例如,桶内对象路径为obs://bucket/src1/src2/test.txt,则对象的全路径为src1/src2/test.txt)。 该匹配模式仅适用于对象名非“/”结尾的对象。 支持指定多个exclude参数,如-exclude=*.xxx -exclude=*.xxx include 附加参数,可选 包含源对象的匹配模式,如:*.jpg。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 首先执行exclude的匹配规则,如果待复制的对象名不匹配exclude,则判断待复制的对象名是否匹配该参数,如果匹配则复制该对象,否则跳过该文件的复制。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于对象全路径(含从根路径开始的对象前缀和对象名,例如,桶内对象路径为obs://bucket/src1/src2/test.txt,则对象的全路径为src1/src2/test.txt)。 该匹配模式仅适用于对象名非“/”结尾的对象。 支持指定多个include参数,如-include=*.xxx -include=*.xxx timeRange 附加参数,可选 复制对象时的时间段匹配模式,仅复制最后修改时间在该时间段内的对象。 该匹配模式优先级低于对象名匹配模式:exclude和include,优先执行对象名匹配模式后才会执行该匹配模式。 说明: 使用“time1-time2”,代表匹配的时间段,其中time1必须小于等于time2,格式为yyyyMMddHHmmss。 时间格式支持自动补全,例如yyyyMMdd等价于yyyyMMdd000000,yyyyMM等价于yyyyMM01000000。 使用“*-time2”,代表匹配最后修改时间在time2之前的所有文件,使用“time1-*”,代表匹配最后修改时间time1之后的所有文件。 须知: 该匹配模式表示的时间是UTC时间。 该匹配模式仅适用于对象名非“/”结尾的对象。 mf 附加参数,可选 设置名称匹配模式(include、exclude)和时间匹配模式(timeRange)对对象名以“/”结尾的对象也生效。 o 附加参数,可选 生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(可能包含成功结果、失败结果和警告结果三个文件),默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。 说明: 结果清单文件命名规则:cp_{succeed | failed | warning}_report_时间_TaskId.txt。 单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024,可在配置文件中通过recordMaxLogSize和recordBackups分别配置。 当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件"cp_failed_report_时间_TaskId.txt"及日志路径下的日志文件; clear 附加参数,可选 设置在恢复复制任务完成后删除已恢复任务对应的失败结果清单文件。 config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • 运行示例 以Windows操作系统为例,运行obsutil cp -recover=0476929d-9d23-4dc5-b2f8-0a0493f027c5 -f,批量复制对象。 obsutil cp -recover=0476929d-9d23-4dc5-b2f8-0a0493f027c5 -f Parallel: 3 Jobs: 3 Threshold: 524288000 PartSize: 5242880 Exclude: Include: VerifyLength: false VerifyMd5: false CheckpointDir: xxxx OutputDir: xxxx [=============================================================] 100.00% 10/s 0s Succeed count is: 1 Failed count is: 0 Metrics [max cost:298 ms, min cost:192 ms, average cost:238.00 ms, average tps:9.71] Task id is: f4c4f2b6-6e54-4dff-96b8-52e8c8c9a4b0
  • 命令结构 Windows操作系统 obsutil cp -recover=xxx [-dryRun] [-f] [-u] [-crr] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-clear] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] macOS/Linux操作系统 ./obsutil cp -recover=xxx [-dryRun] [-f] [-u] [-crr] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-clear] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 运行示例 以Windows操作系统为例,运行obsutil ls -limit=5,查询桶列表。 obsutil ls -limit=5 Bucket CreationDate Location BucketType obs://bucket001 2018-09-03T01:53:02Z example OBJECT obs://bucket002 2018-11-01T01:40:01Z example OBJECT obs://bucket003 2018-10-25T11:45:45Z example OBJECT obs://bucket004 2018-10-26T02:33:09Z example OBJECT obs://bucket005 2018-10-26T02:34:50Z example OBJECT Bucket number : 5
  • 参数说明 参数 约束 描述 s 附加参数,可选 以精简格式显示查询结果。 说明: 在精简格式下,返回结果只包含桶名。 sc 附加参数,可选 查询桶列表时同时查询桶的存储类型。 j 附加参数,可选,必须与sc参数搭配使用才有意义 查询桶存储类型时的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 du 附加参数,可选 快速返回所列举对象的总大小,不显示具体的对象信息,可与其他参数配合使用。 说明: 此参数在列举桶时无效,仅在列举对象时生效。 fs 附加参数,可选 是否使用并行文件系统的列举方式,如果桶是并行文件系统,推荐加上该参数。 注意: 该列举方式会因为目录结构,耗时会差别很大。 该参数开启后,会忽略marker和limit值,统计桶或者并行文件系统或者指定目录的大小。 Util 5.5.12版本及以上支持该参数。 limit 附加参数,可选 查询桶的最大个数,小于0表示列举所有结果,不设置时的默认值为1000。 format 附加参数,可选 指定以自定义格式打印列举结果。当前仅支持值[default],指定列举结果在一行显示。 config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • 命令结构 Windows操作系统 obsutil ls [-s] [-du] [-sc] [-j=1] [-limit=1] [-format=default] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] macOS/Linux操作系统 ./obsutil ls [-s] [-du] [-sc] [-j=1] [-limit=1] [-format=default] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 命令结构 Windows操作系统 复制单个对象 obsutil cp obs://srcbucket/key obs://dstbucket/[dest] [-dryRun][-u] [-crr] [-vlength] [-vmd5] [-p=1] [-threshold=52428800] [-versionId=xxx] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-cpd=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 批量复制对象 obsutil cp obs://srcbucket[/key] obs://dstbucket[/dest] -r [-dryRun][-f] [-flat] [-u] [-crr] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-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 cp obs://srcbucket/key obs://dstbucket/[dest] [-dryRun] [-u] [-crr] [-vlength] [-vmd5] [-p=1] [-threshold=52428800] [-versionId=xxx] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-cpd=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 批量复制对象 ./obsutil cp obs://srcbucket[/key] obs://dstbucket[/dest] -r [-dryRun] [-f] [-flat] [-u] [-crr] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 功能说明 复制对象或按对象名前缀批量复制对象。 复制对象或批量复制时,请确保OBS桶中的源对象不发生变化,否则可能产生复制失败或者数据不一致的问题。 如果被复制对象的存储类型为cold,必须首先恢复被复制对象,否则无法复制成功。 复制时需要有被复制对象的读权限和目标桶的写权限。 如果没有开启客户端跨区域复制模式,复制的源桶和目标桶必须在同一个区域(Region)。 如果源桶是并行文件系统(POSIX),则目标桶不能是非并行文件系统。
  • 参数说明 参数 约束 描述 srcbucket 必选 源桶名。 dstbucket 必选 目标桶名。 dest 可选 复制对象时的目标对象名,或批量复制时目标对象名前缀。 key 复制对象时必选 批量复制时可选 复制对象时的源对象名,或批量复制时源对象名前缀。 规则如下: 复制对象时,该值不能为空;如果dest为空,则将源对象复制到目标桶的根目录;如果dest以“/”结尾,则目标对象名为dest+源对象名;否则,目标对象名为dest; 批量复制时,如果该值为空,则复制源桶中的所有对象;否则,复制源桶中以该值为对象名前缀的所有对象。目标对象名的确认规则为: 如果dest以“/”结尾,目标对象名为dest+源对象名; 如果dest不以“/”结尾,目标对象名为dest+/+源对象名。 说明: 批量复制且该值不为空时,若未设置flat选项,则复制时源对象名会包含上一级父对象名前缀;若设置了flat选项,则复制时源对象名不包含上一级父对象名前缀。 请参考复制示例理解该参数的使用方式。 fr 附加参数,复制对象时可选 复制对象时生成结果清单文件。 flat 附加参数,批量复制时可选 批量复制时,不包含上一级父对象名前缀。 dryRun 附加参数,可选 测试模式运行,不执行实际的复制操作。 crr 附加参数,可选 复制时使用客户端跨区域复制模式,以通过数据流的方式从源桶直接复制数据到目标桶,且两个桶可以是任意两个OBS服务的桶。 说明: 若设置了该参数,必须确保更新了配置文件中客户端跨区域复制的相关配置信息,具体可参考更新配置文件。 复制时源桶对应的配置信息为配置文件中的:akCrr/skCrr/tokenCrr/endpointCrr,目标桶对应的配置信息为配置文件中的:ak/sk/token/endpoint。 须知: 开启跨区域复制后,因为会占用执行命令主机上传和下载的双向带宽、CPU和内存等资源,可能会影响执行命令主机的性能。 vlength 附加参数,可选 复制完成后,验证目标桶对象大小是否与源桶中对象的大小一致。 说明: 必须与crr参数配合使用。 vmd5 附加参数,可选 复制完成后,验证目标桶的MD5值是否与源桶中对象的MD5值一致。 说明: 必须与crr参数配合使用。 源桶中对象必须包含元数据x-obs-meta-md5chksum,否则会忽略MD5值校验。 MD5值校验通过后,会将该值设置为目标对象元数据x-obs-meta-md5chksum,用于下载或复制时校验MD5。 u 附加参数,可选 增量复制操作,设置该参数后,复制每个源对象时会对比目标桶中对应路径的目标对象,仅在目标对象不存在,或者目标对象大小与源对象大小不一致,或者目标对象的最后修改时间早于源对象的最后修改时间时进行复制。 p 附加参数,可选 每个分段复制任务的最大并发数,默认为配置文件中的defaultParallels。 threshold 附加参数,可选 开启分段复制任务的阈值,单位:字节,默认为配置文件中的defaultBigfileThreshold。 说明: 如果待复制的源对象小于该阈值,则使用直接复制模式;否则使用分段复制模式。 直接复制模式不会产生断点记录文件,不支持断点续传。 支持带容量单位配置,例如,配置1MB代表1048576字节。 versionId 附加参数,复制对象时可选 复制单个对象时可指定的源对象版本号。 acl 附加参数,可选 复制对象时可指定的目标对象的预定义访问策略。支持的值: private public-read public-read-write bucket-owner-full-control 说明: 以上四个值分别对应:私有读写、公共读、公共读写、桶拥有者完全控制,四种预定义访问策略。 sc 附加参数,可选 复制对象时可指定的目标对象的存储类型。支持的值: standard:标准存储,访问时延低、吞吐量高,适用于有大量热点文件(平均一个月多次)或小文件(小于1MB)。 warm:低频访问存储,可用性略低于standard,适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景。 cold:归档存储,安全、持久且成本极低,适用于很少访问(平均一年访问一次)数据的业务场景。 meta 附加参数,可选 复制对象时可指定的目标对象的标准和自定义元数据。格式为:key1:value1#key2:value2#key3:value3。 说明: 以上值表示复制对象完成后,桶内目标对象包含三组自定义元数据,分别为:key1:value1、key2:value2、key3:value3。 标准元数据头包括:Content-Type、Content-Encoding、Cache-Control、Content-Disposition、Content-Language、Expires。 fs 附加参数,可选 是否使用并行文件系统的列举方式,如果桶是并行文件系统,推荐加上该参数。 注意: 该列举方式会因为目录结构,耗时会差别很大。 该参数开启后,会忽略marker和limit值,统计桶或者并行文件系统或者指定目录的大小。 Util 5.5.12版本及以上支持该参数。 ps 附加参数,可选 每个分段复制任务的段大小,单位:字节,取值范围是100KB~5GB,默认为配置文件中的defaultPartSize。 说明: 支持带容量单位配置,例如,配置1MB代表1048576字节。 支持配置为auto,此时obsutil会根据源对象大小自动设置每个分段任务的段大小。 cpd 附加参数,可选 生成断点记录文件的文件夹,默认为运行obsutil命令的用户目录的子文件夹.obsutil_checkpoint。 说明: 每个分段复制任务会产生唯一对应的断点记录文件并保存至该文件夹的copy子文件夹下,分段任务执行成功后,对应的断点记录文件会被自动删除;分段任务执行失败或被中断后,下次执行该分段任务时会尝试通过对应的断点记录文件恢复任务。 r 附加参数,批量复制时必选 按指定源桶的对象名前缀批量复制对象。 f 附加参数,批量复制时可选 强制操作,不进行询问提示。 j 附加参数,批量复制时可选 批量复制时的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 exclude 附加参数,批量复制时可选 不包含源对象的匹配模式,如:*.txt。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符,例如abc*.txt代表匹配以abc开头以.txt结尾的任意文件。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 如果待复制的对象名匹配该参数,则跳过该对象的复制。 须知: 建议使用引号传递该匹配模式( macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于对象全路径(含从根路径开始的对象前缀和对象名,例如,桶内对象路径为obs://bucket/src1/src2/test.txt,则对象的全路径为src1/src2/test.txt)。 该匹配模式仅适用于对象名非“/”结尾的对象。 支持指定多个exclude参数,如 -exclude=*.xxx -exclude=*.xxx。 include 附加参数,批量复制时可选 包含源对象的匹配模式,如:*.jpg。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 首先执行exclude的匹配规则,如果待复制的对象名不匹配exclude,则判断待复制的对象名是否匹配该参数,如果匹配则复制该对象,否则跳过该文件的复制。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于对象全路径(含从根路径开始的对象前缀和对象名,例如,桶内对象路径为obs://bucket/src1/src2/test.txt,则对象的全路径为src1/src2/test.txt)。 该匹配模式仅适用于对象名非“/”结尾的对象。 支持指定多个include参数,如-include=*.xxx -include=*.xxx。 timeRange 附加参数,批量复制时可选 复制对象时的时间段匹配模式,仅复制最后修改时间在该时间段内的对象。 该匹配模式优先级低于对象名匹配模式:exclude和include,优先执行对象名匹配模式后才会执行该匹配模式。 说明: 使用“time1-time2”,代表匹配的时间段,其中time1必须小于等于time2,格式为yyyyMMddHHmmss。 时间格式支持自动补全,例如yyyyMMdd等价于yyyyMMdd000000,yyyyMM等价于yyyyMM01000000。 使用“*-time2”,代表匹配最后修改时间在time2之前的所有文件,使用“time1-*”,代表匹配最后修改时间time1之后的所有文件。 须知: 该匹配模式表示的时间是UTC时间。 该匹配模式仅适用于对象名非“/”结尾的对象。 mf 附加参数,可选 设置名称匹配模式(include、exclude)和时间匹配模式(timeRange)对对象名以“/”结尾的对象也生效。 o 附加参数,可选 生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(可能包含成功结果、失败结果和警告结果三个文件),默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。 说明: 结果清单文件命名规则:cp_{succeed | failed | warning}_report_时间_TaskId.txt。 单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024,可在配置文件中通过recordMaxLogSize和recordBackups分别配置。 当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件"cp_failed_report_时间_TaskId.txt"及日志路径下的日志文件。 config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • 命令结构 Windows操作系统 移动单个对象 obsutil mv obs://srcbucket/key obs://dstbucket/[dest] [-dryRun] [-u] [-p=1] [-threshold=52428800] [-versionId=xxx] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-cpd=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 批量移动对象 obsutil mv obs://srcbucket[/key] obs://dstbucket[/dest] -r [-dryRun] [-f] [-flat] [-u] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-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 mv obs://srcbucket/key obs://dstbucket/[dest] [-dryRun] [-u] [-p=1] [-threshold=52428800] [-versionId=xxx] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-cpd=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 批量移动对象 ./obsutil mv obs://srcbucket[/key] obs://dstbucket[/dest] -r [-dryRun] [-f] [-flat] [-u] [-j=1] [-p=1] [-threshold=52428800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 移动的源路径和目标路径不能完全相同。 批量移动时,源路径和目标路径不能相互嵌套。 不支持对并行文件系统的批量移动的操作。
  • 参数说明 参数 约束 描述 srcbucket 必选 源桶名。 dstbucket 必选 目标桶名。 dest 可选 移动对象时的目标对象名,或批量移动时目标对象名前缀。 key 移动对象时必选 批量移动时可选 移动对象时的源对象名,或批量移动时源对象名前缀。 规则如下: 移动对象时,该值不能为空;如果dest为空,则将源对象移动到目标桶的根目录;如果dest以“/”结尾,则目标对象名为dest+源对象名;否则,目标对象名为dest; 批量移动时,如果该值为空,则移动源桶中的所有对象;否则,移动源桶中以该值为对象名前缀的所有对象。目标对象名的确认规则为: 如果dest以“/”结尾,目标对象名为dest+源对象名; 如果dest不以“/”结尾,目标对象名为dest+/+源对象名。 说明: 批量移动且该值不为空时,若未设置flat选项,则移动时源对象名会包含上一级父对象名前缀;若设置了flat选项,则移动时源对象名不包含上一级父对象名前缀。 请参考移动命令结构理解该参数的使用方式。 fr 附加参数,移动对象时可选 移动对象时生成结果清单文件。 flat 附加参数,批量移动时可选 移动时,不包含上一级父对象名前缀。 dryRun 附加参数,可选 测试模式运行,不执行实际的移动操作。 u 附加参数,可选 增量移动操作,设置该参数后,移动每个源对象时会对比目标桶中对应路径的目标对象,仅在目标对象不存在,或者目标对象大小与源对象大小不一致,或者目标对象的最后修改时间早于源对象的最后修改时间时进行移动。 说明: 如果目标对象与源对象大小以及修改时间都一致,此时会直接删除源对象,而不进行移动操作。 p 附加参数,可选 每个分段移动任务的最大并发数,默认为配置文件中的defaultParallels。 threshold 附加参数,可选 开启分段移动任务的阈值,单位:字节,默认为配置文件中的defaultBigfileThreshold。 说明: 如果待移动的源对象小于该阈值,则使用直接移动模式;否则使用分段移动模式。 直接移动模式不会产生断点记录文件,不支持断点续传。 支持带容量单位配置,例如,配置1MB代表1048576字节。 versionId 附加参数,移动对象时可选 移动单个对象时可指定的源对象版本号。 说明: POSIX桶无version概念,故POSIX桶不支持versionId选项。 acl 附加参数,可选 移动对象时可指定的目标对象的预定义访问策略。支持的值: private public-read public-read-write bucket-owner-full-control 说明: 以上四个值分别对应:私有读写、公共读、公共读写、桶拥有者完全控制,四种预定义访问策略。 sc 附加参数,可选 移动对象时可指定的目标对象的存储类型。支持的值: standard:标准存储,访问时延低、吞吐量高,适用于有大量热点文件(平均一个月多次)或小文件(小于1MB)。 warm:低频访问存储,可用性略低于standard,适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景。 cold:归档存储,安全、持久且成本极低,适用于很少访问(平均一年访问一次)数据的业务场景。 meta 附加参数,可选 移动对象时可指定的目标对象的自定义元数据。格式为:key1:value1#key2:value2#key3:value3。 说明: 以上值表示移动对象完成后,桶内目标对象包含三组自定义元数据,分别为:key1:value1、key2:value2、key3:value3。 fs 附加参数,可选 是否使用并行文件系统的列举方式,如果桶是并行文件系统,推荐加上该参数。 注意: 该列举方式会因为目录结构,耗时会差别很大。 该参数开启后,会忽略marker和limit值,统计桶或者并行文件系统或者指定目录的大小。 Util 5.5.12版本及以上支持该参数。 ps 附加参数,可选 每个分段移动任务的段大小,单位:字节,取值范围是100KB~5GB,默认为配置文件中的defaultPartSize。 说明: 支持带容量单位配置,例如,配置1MB代表1048576字节。 支持配置为auto,此时obsutil会根据源对象大小自动设置每个分段任务的段大小。 cpd 附加参数,可选 生成断点记录文件的文件夹,默认为运行obsutil命令的用户目录的子文件夹.obsutil_checkpoint。 说明: 每个分段移动任务会产生唯一对应的断点记录文件并保存至该文件夹的copy子文件夹下,分段任务执行成功后,对应的断点记录文件会被自动删除;分段任务执行失败或被中断后,下次执行该分段任务时会尝试通过对应的断点记录文件恢复任务。 r 附加参数,批量移动时必选 按指定源桶的对象名前缀批量移动对象。 f 附加参数,批量移动时可选 强制操作,不进行询问提示。 j 附加参数,批量移动时可选 批量移动时的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 exclude 附加参数,批量移动时可选 不包含源对象的匹配模式,如:*.txt。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符,例如abc*.txt代表匹配以abc开头以.txt结尾的任意文件。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 如果待移动的对象名匹配该参数,则跳过该对象的移动。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于对象全路径(含从根路径开始的对象前缀和对象名,例如,桶内对象路径为obs://bucket/src1/src2/test.txt,则对象的全路径为src1/src2/test.txt)。 该匹配模式仅适用于对象名非“/”结尾的对象。 支持指定多个exclude参数,如-exclude=*.xxx -exclude=*.xxx include 附加参数,批量移动时可选 包含源对象的匹配模式,如:*.jpg。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 首先执行exclude的匹配规则,如果待移动的对象名不匹配exclude,则判断待移动的对象名是否匹配该参数,如果匹配则移动该对象,否则跳过该文件的复制。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于对象全路径(含从根路径开始的对象前缀和对象名,例如,桶内对象路径为obs://bucket/src1/src2/test.txt,则对象的全路径为src1/src2/test.txt)。 该匹配模式仅适用于对象名非“/”结尾的对象。 支持指定多个include参数,如-include=*.xxx -include=*.xxx timeRange 附加参数,批量移动时可选 移动对象时的时间段匹配模式,仅移动最后修改时间在该时间段内的对象。 该匹配模式优先级低于对象名匹配模式:exclude和include,优先执行对象名匹配模式后才会执行该匹配模式。 说明: 使用“time1-time2”,代表匹配的时间段,其中time1必须小于等于time2,格式为yyyyMMddHHmmss。 时间格式支持自动补全,例如yyyyMMdd等价于yyyyMMdd000000,yyyyMM等价于yyyyMM01000000。 使用“*-time2”,代表匹配最后修改时间在time2之前的所有文件,使用“time1-*”,代表匹配最后修改时间time1之后的所有文件。 须知: 该匹配模式表示的时间是UTC时间。 该匹配模式仅适用于对象名非“/”结尾的对象。 mf 附加参数,可选 设置名称匹配模式(include、exclude)和时间匹配模式(timeRange)对对象名以“/”结尾的对象也生效。 o 附加参数,可选 生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(可能包含成功结果、失败结果和警告结果三个文件),默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。 说明: 结果清单文件命名规则:mv_{succeed | failed | warning}_report_时间_TaskId.txt。 单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024,可在配置文件中通过recordMaxLogSize和recordBackups分别配置。 当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件"mv_failed_report_时间_TaskId.txt"及日志路径下的日志文件; config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • Windows操作系统下,下载对象时发现本地和云上对象数量不一致 如果发现下载后本地文件和文件夹数量之和小于云上对象数量(OBS不区分文件或文件夹,统称为对象),并且当前操作系统是Windows,这个是因为Windows文件系统将文件和目录名称视为不区分大小写,FOO.txt和foo.txt将被视为相同文件;但是在OBS中是区分大小写的,FOO.txt和foo.txt将被视为不同文件。 比如桶中存在以下对象(大小写不一致): obsutil ls obs://test Start at 2024-01-17 01:33:37.6378193 +0000 UTC Listing objects . Folder list: obs://test/TEST/ obs://test/test/ Object list: key LastModified Size StorageClass ETag obs://test/TEST/FOO.txt 2024-01-17T01:33:21Z 493B standard "735b0ca5680bfa12d8895702662192ec" obs://test/test/foo.txt 2024-01-17T01:32:59Z 5B standard "5d41402abc4b2a76b9719d911017c592" Total size of bucket: 498B Folder number: 2 File number: 2 使用cp命令下载整个桶的对象到Windows的test目录下: obsutil cp obs://test ./test -r -f Start at 2024-01-17 01:39:40.4700311 +0000 UTC Parallel: 5 Jobs: 5 Threshold: 50.00MB PartSize: auto VerifyLength: false VerifyMd5: false CheckpointDir: C:\Users\Administrator\.obsutil_checkpoint Task id: 72c5ac1c-68c0-4206-95d6-18a193bfa77e OutputDir: C:\Users\Administrator\.obsutil_output TempFileDir: C:\Users\Administrator\temp [---------------------------] 100.00% tps:484.98 162.11KB/s 4/4 498B/498B 205ms Succeed count: 4 Failed count: 0 Succeed bytes: 498B Metrics [max cost:86 ms, min cost:85 ms, average cost:43.25 ms, average tps:9.13, transfered size:498B] Task id: 72c5ac1c-68c0-4206-95d6-18a193bfa77e 使用dir /b /s 查看test路径下的所有文件和文件夹以及子目录下的文件,发现只保留了文件夹TEST\和文件TEST\foo.txt。 在该场景下本地文件不一定对应原始OBS文件,在这个例子中,本地TEST\foo.txt 是云上TEST/FOO.txt,而非test/foo.txt,这个因下载成功顺序而导致结果不同。 针对文件夹,以首次文件夹名下载成功为准,比如TEST/优先 test/下载成功,则最后本地文件夹只有TEST\。 针对文件,文件名以首次文件名下载成功为准,文件内容以最后一次下载成功为准,比如云上的对象test/foo.txt优先TEST/FOO.txt下载成功,则最后本地文件只有foo.txt(文件名),但是文件内容是FOO.txt的内容。 父主题: 常见问题
  • 修订记录 发布日期 修订记录 2024-01-19 第八次正式发布。 修改章节: SDK下载,优化兼容性描述内容。 2024-01-05 第七次正式发布。 新增章节: 如何解决 Declaration of xxxx must be compatible with xxxx?。 2019-11-20 第六次正式发布。 调整以下章节的位置: 示例程序 技术支持渠道 2019-03-30 第五次正式发布。 新增章节: API参考。 2019-01-17 第四次正式发布。 修改章节: SDK下载,新增SDK源码地址。 安装SDK,新增“使用composer安装”方式。 使用临时URL进行授权访问,优化描述内容。 对象上传简介,新增对象链接地址格式拼接规则。 2018-10-31 第三次正式发布。 新增章节: “管理桶策略” “基于表单上传” 修改章节: “使用URL进行授权访问”,增加示例代码。 2018-01-31 第二次正式发布。 调整章节: “快速入门”,新增OBS服务端环境搭建、开发环境准备、安装SDK、获取服务地址、引入依赖。 “相关资源”,新增示例程序,移除OBS服务端环境搭建。 “初始化”,移除服务地址。 新增章节: 桶存储类型 修改章节: 设置对象属性,新增设置对象存储类型小节。 “临时授权访问”,修改示例代码。 设置生命周期规则,新增设置对象转换策略小节。 2017-11-30 第一次正式发布。
  • 兼容性 版本修订记录信息:ChangeLog。 推荐的PHP版本:PHP 5.6,PHP 7.x。 PHP SDK 3.22.6 及以上版本至少需要PHP 7.1 版本才支持使用。 PHP SDK最高只兼容到PHP 8.1版本, 不支持PHP 8.2 及以上版本。 命名空间:与旧版本(2.1.x)不兼容,对外公开的类和函数均调整到Obs命名空间下。 接口函数:与旧版本(2.1.x)不完全兼容,接口变化如下表: 接口函数 变化说明 ObsClient.setBucketCors 请求参数中CorsRule字段改名为CorsRules。 ObsClient.getBucketCors 响应结果中CorsRule字段改名为CorsRules。 ObsClient.setBucketTagging 请求参数中TagSet字段改名为Tags。 ObsClient.getBucketTagging 响应结果中TagSet字段改名为Tags。
  • 如何解决 Declaration of xxxx must be compatible with xxxx? 如果遇到这种报错,基本上都是版本不兼容导致的,因为社区开源软件依赖会不定期更新。比如遇到以下报错: Declaration of Obs\Internal\Common\CheckoutStream::read($length) must be compatible with Psr\Http\Message\StreamInterface::read(int $length) 从报错得知,CheckoutStream::read($length) 缺少int类型声明,很大可能就是psr/http-message版本太高(可以从composer.lock找到准确的版本号),另外查看Github社区发现psr/http-message 1.1版本升级到2.0 增加了类型声明,最后降低psr/http-message 版本为1.1解决问题。 父主题: 常见问题
  • 提交Spark作业 用户需要在数据开发模块中创建一个作业,通过作业的DLI Spark节点提交Spark作业。 创建一个数据开发模块空作业,作业名称为“job_DLI_Spark”。 图3 创建作业 然后进入作业开发页面,拖动DLI Spark节点到画布并单击,配置节点的属性。 图4 配置节点属性 关键属性说明: DLI集群名称:DLI中创建的Spark集群。 作业运行资源:DLI Spark节点运行时,限制最大可以使用的CPU、内存资源。 作业主类:DLI Spark节点的主类,本例的主类是“org.apache.spark.examples.SparkPi”。 Jar包资源:3中创建的资源。 作业编排完成后,单击,测试运行作业。 图5 作业日志(仅参考) 如果日志运行正常,保存作业并提交版本。
  • 场景说明 用户在使用DLI服务时,大部分时间会使用SQL对数据进行分析处理,有时候处理的逻辑特别复杂,无法通过SQL处理,那么可以通过Spark作业进行分析处理。本章节通过一个例子演示如何在数据开发模块中提交一个Spark作业。 操作流程如下: 创建DLI集群,通过DLI集群的物理资源来运行Spark作业。 获取Spark作业的演示JAR包,并在数据开发模块中关联到此JAR包。 创建数据开发模块作业,通过DLI Spark节点提交Spark作业。
  • 新建企业模式工作空间 如果您之前未使用过简单模式、无需继承业务数据,则可以直接新建新企业模式工作空间。 创建工作空间 使用具有DAYU Administrator、Tenant Administrator权限的账号进入DataArts Studio控制台。 单击控制台的“空间管理”页签,进入工作空间页面。 单击“新建”,在空间信息页面请根据页面提示配置参数,参数说明如表1所示,配置完成后,单击“确定”完成工作空间的创建。 图6 空间信息 表1 新建空间参数说明 参数名 说明 空间名称 空间名称,只能包含字母、数字、下划线、中划线、中文字符,且长度不超过32个字符。在当前的DataArts Studio实例中,工作空间名称必须唯一。 空间描述 空间的描述信息。 空间模式 选择工作空间为简单模式还是企业模式。新建企业模式工作空间时,此处需配置为企业模式。 企业项目 DataArts Studio实例默认工作空间关联的企业项目。企业项目管理是一种按企业项目管理云资源的方式,具体请参见《企业管理用户指南》。 如果已经创建了企业项目,这里才可以选择。当DataArts Studio实例需连接云上服务(如DWS、MRS、RDS等),还必须确保DataArts Studio工作空间的企业项目与该云服务实例的企业项目相同。 一个企业项目下只能购买一个DataArts Studio实例。 需要与其他云服务互通时,需要确保与其他云服务的企业项目一致。 作业日志OBS路径 用于指定DataArts Studio数据开发作业的日志存储的OBS桶。工作空间成员如需使用DataArts Studio数据开发,必须具备“作业日志OBS桶”的读、写权限,否则,在使用过程中,系统将无法正常读、写数据开发的作业日志。 单击“请选择”按钮,您可以选择一个已创建的OBS桶和对象,系统将基于工作空间全局配置作业日志OBS桶。 如果不配置该参数,DataArts Studio数据开发的作业日志默认存储在以“dlf-log-{projectId}”命名的OBS桶中,{projectId}即项目ID。 DLI脏数据OBS路径 用于指定DataArts Studio数据开发中DLI SQL执行过程中的脏数据存储的OBS桶。工作空间成员如需使用DataArts Studio数据开发执行DLI SQL,必须具备“DLI脏数据OBS桶”的读、写权限,否则,在使用过程中,系统将无法正常读、写DLI SQL执行过程中的脏数据。 单击“请选择”按钮,您可以选择一个已创建的OBS桶和对象,系统将基于工作空间全局配置DLI脏数据OBS桶。 如果不配置该参数,DataArts Studio数据开发的DLI SQL脏数据默认存储在以“dlf-log-{projectId}”命名的OBS桶中。 DLM专享版API配额 该参数对应值分别表示已使用配额/已分配配额/总使用配额/总分配配额/总配额。 数据服务专享版会对已创建的API按需计费,默认上限为0时,不可创建API。 初始工作空间具有10个API的试用额度。已分配配额可以修改,但不能小于已使用配额,不能大于总配额-总分配配额+已分配配额。 创建后操作 创建后需要管理员手工新建数据连接、配置环境隔离,并按照组织分工在工作空间处定义管理员、开发者、部署者、运维者等角色。 新建数据连接:请参考新建数据连接。 配置环境隔离:请参考配置企业模式环境隔离。 为其他用户定义工作空间角色:请参见添加工作空间成员和角色。 另外,新建企业模式工作空间,还需要您在数据开发中配置空间级别的公共委托或公共IAM账号。配置委托的操作详情可参见配置调度身份。 图7 配置工作空间委托
  • 简单模式升级企业模式 对于简单模式的工作空间,DAYU Administrator、Tenant Administrator可以直接将其升级为企业模式。 升级前操作 如果您需要升级工作空间模式,需要在数据开发中配置空间级别的公共委托或公共IAM账号,避免升级失败。 配置委托的操作详情可参见配置调度身份。 图4 配置工作空间委托 升级操作 登录DataArts Studio控制台。 找到所需要的DataArts Studio实例,在DataArts Studio实例上单击“进入控制台”。然后,选择“空间管理”页签。 在“空间管理”页面,找到需要升级模式的工作空间,单击其所在行的“编辑”,此时显示“空间信息”页面。 在“空间信息”页面,单击“空间模式”后的“升级”按钮,弹出确认界面后,单击“确认升级”您就可以将该工作空间升级为企业模式。 图5 升级企业模式 升级后操作 升级后需要管理员手工修改数据连接、配置环境隔离,并按照组织分工在工作空间处定义管理员、开发者、部署者、运维者等角色。 修改数据连接:请参考新建数据连接。 配置环境隔离:请参考配置企业模式环境隔离。 为其他用户定义工作空间角色:请参见添加工作空间成员和角色。
  • 前提条件 创建工作空间模式前,您需要先了解以下内容: 已了解简单模式与企业模式工作空间的区别,包括不同工作空间的开发流程等差异,详情请参见简单模式与企业模式介绍。 已配置空间级的身份调度,包含公共委托和公共IAM账号,详情请参见配置公共委托和配置公共IAM账号。 已准备好两套相互隔离的数据湖引擎,用于隔离开发和生产环境。 配置两套数据湖服务,进行开发与生产环境隔离。 对于集群化的数据源(例如MRS、DWS、RDS、MySQL、Oracle、DIS、ECS等),DataArts Studio通过管理中心的创建数据连接区分开发环境和生产环境的数据湖服务,在开发和生产流程中自动切换对应的数据湖。因此您需要准备两套数据湖服务,且两套数据湖服务的版本、规格、组件、区域、VPC、子网以及相关配置等信息,均应保持一致,详细操作请参见新建数据连接。 创建数据连接时,通过不同的集群来进行开发与生产环境的隔离,如图1所示。 图1 创建数据连接时选择不同集群 配置DLI环境隔离。 配置企业模式环境隔离,包含DLI队列配置和DB配置。 对于Serverless服务(例如DLI),DataArts Studio通过管理中心的环境隔离来配置生产环境和开发环境数据湖服务的对应关系,在开发和生产流程中自动切换对应的数据湖。因此您需要在Serverless数据湖服务中准备两套队列、两套数据库资源,建议通过名称后缀进行区分,详细操作请参见配置企业模式环境隔离。 配置DB,在同一个数据湖服务下配置两套数据库,进行开发与生产环境隔离。 对于DWS、MRS Hive和MRS Spark这三种数据源,如果在创建数据连接时选择同一个集群,如图2所示,则需要配置数据源资源映射的DB数据库映射关系进行开发生产环境隔离,如图3所示。详细操作请参见DB配置。 图2 创建数据连接时选择同一个集群 图3 DB配置 数据准备与同步 数据湖服务创建完成后,您需要按照项目规划(例如数据开发需要操作的库表等),分别在开发和生产环境的数据湖服务中,新建数据库、数据库模式(仅DWS需要)、数据表等。 对于集群化的数据源(例如MRS、DWS、RDS、MySQL、Oracle、DIS、ECS),使用两套集群资源,两套环境中的数据库、数据库模式(仅DWS需要)和数据表必须保持同名。 对于Serverless服务(例如DLI),两套队列和两套数据库建议通过名称和后缀(开发环境添加后缀“_dev”,生产环境无后缀)进行关联与区分,数据表必须保持同名。 对于DWS、MRS Hive和MRS Spark数据源,如果使用一套相同的集群资源,通过两个数据库(开发环境添加后缀“_dev”,生产环境无后缀)进行开发生产环境隔离,两套环境中数据库模式(仅DWS需要)和数据表必须保持同名。 数据库、数据库模式(仅DWS需要)、数据表等新建完成后,如果涉及原始数据表等,您还需要将两套数据湖服务之间的数据进行同步: 数据湖中已有数据:通过CDM或DRS等数据迁移服务,在数据湖间批量同步数据。 数据源待迁移数据:通过对等的CDM或DRS等数据迁移服务作业进行同步,保证生产环境和开发环境的数据湖服务数据一致。
共100000条