华为云用户手册

  • 完整示例 #!/usr/bin/python import pymongo import random import os # 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放、使用时解密),确保安全 # 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV username = os.getenv('EXAMPLE_USERNAME_ENV') password = os.getenv('EXAMPLE_PASSWORD_ENV') mongodbUri = 'mongodb://%s:%s@10.66.187.127:27017/admin' client = pymongo.MongoClient(mongodbUri % (username, password )) db = client.somedb db.user.drop() element_num=10 for id in range(element_num): name = random.choice(['R9','cat','owen','lee','J']) sex = random.choice(['male','female']) db.user.insert_one({'id':id, 'name':name, 'sex':sex}) content = db.user.find() for i in content: print i 更多PyMongo接口请参考官方文档。 父主题: 基于Python连接实例
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 Authorization 是 String 认证凭据,值:Bearer {access_token},access_token通过“获取访问凭据”接口获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 password 是 String 新密码。 old_password 是 String 原密码。
  • 请求示例 校验原密码修改用户密码。 PUT https://{domain_name}/api/v2/tenant/users/{user_id}/change-password-verify Authorization: Bearer 334963fc-1e4a-473b-9096-52a929140... { "password":"N******8", "old_password":"O******4" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 status String 登录流程状态标识。 枚举值: SUCCESS:登录成功 ACCESS_DENIED:拒绝访问 session_token String 用户session_token,可使用该token调用单点登录接口获取sso_ticket,通过sso_ticket可以获取用户信息。 id_token String 本质上是一个JWT Token,包含了用户身份信息,默认2小时有效,支持可配置。 expire Integer session_token有效期,单位为秒,有效期内可以使用session_token获取ticket。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误详情。
  • 请求示例 密码过期强制修改密码。 POST https://{domain_name}/api/v2/sdk/pwd/update X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-agent: Mozilla/5.0 (Linux; Android 10; Redmi K30 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-state-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "old_password": "P******d", "new_password": "P******3" }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户Agent信息,例如:Mozilla/5.0 (Linux; Android 10; Redmi K30 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-state-token 是 String 临时令牌,调用密码登录相关接口,密码快过期或已过期时返回的state_token。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 old_password 是 String 用户的原密码。 new_password 是 String 设置的新密码。
  • 请求示例 发送短信验证码,给指定手机号12345678901用于绑定手机号,图形验证码校验通过凭证为71d******635---{"x":237.0,"y":5.0}。 POST https://{domain_name}/api/v2/sdk/sms/send X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-agent: Mozilla/5.0 (Linux; Android 10; Redmi K30 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "mobile": "12345678901", "type": "BIND_MOBILE_SMS", "captcha_token": "71d******635---{\"x\":237.0,\"y\":5.0}" }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户Agent信息,例如:Mozilla/5.0 (Linux; Android 10; Redmi K30 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 mobile 是 String 手机号。 type 是 String 发送场景。 枚举值: REGISTER_SMS:注册短信 LOGIN_SMS:登录短信 FORGET_PWD_SMS:找回密码短信 BIND_MOBILE_SMS:绑定短信 UPDATE_MOBILE_SMS:修改手机号短信 OTP_REST_SMS:二次认证短信 captcha_token 是 String 图形验证码校验通过的凭证。
  • 修订记录 发布日期 修订记录 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 [-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 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。
  • 参数说明 参数 约束 描述 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。
  • 功能说明 复制对象或按对象名前缀批量复制对象。 复制对象或批量复制时,请确保OBS桶中的源对象不发生变化,否则可能产生复制失败或者数据不一致的问题。 如果被复制对象的存储类型为cold,必须首先恢复被复制对象,否则无法复制成功。 复制时需要有被复制对象的读权限和目标桶的写权限。 如果没有开启客户端跨区域复制模式,复制的源桶和目标桶必须在同一个区域(Region)。 如果源桶是并行文件系统(POSIX),则目标桶不能是非并行文件系统。
  • 命令结构 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]
  • 参数说明 参数 约束 描述 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操作系统 移动单个对象 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] 移动的源路径和目标路径不能完全相同。 批量移动时,源路径和目标路径不能相互嵌套。 不支持对并行文件系统的批量移动的操作。
  • 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的内容。 父主题: 常见问题
共100000条