华为云用户手册

  • 参数说明 参数 约束 描述 interactive 附加参数,可选 使用交互模式更新配置。 须知: 为了安全性,建议您使用该模式来配置ak和sk。 e 附加参数,可选 将配置文件中的endpoint|endpointCrr取值更新为输入的值,endpoint|endpointCrr的详细描述请参见配置参数说明。 i 附加参数,可选 将配置文件中的ak|akCrr取值更新为输入的值,ak|akCrr的详细描述请参见配置参数说明。 k 附加参数,可选 将配置文件中的sk|skCrr取值更新为输入的值,sk|skCrr的详细描述请参见配置参数说明。 t 附加参数,可选 将配置文件中的token|tokenCrr取值更新为输入的值,token|tokenCrr的详细描述请参见配置参数说明。 crr 附加参数,可选 更新配置文件中客户端跨区域复制模式的相关配置信息。 说明: 不配置该参数,e、i、k、t更新的配置文件中的字段为endpoint、ak、sk、token。 配置该参数后,e、i、k、t更新的配置文件中的字段变为endpointCrr、akCrr、skCrr、tokenCrr。 config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 通过携带此参数并指定路径,可更新自定义配置文件的参数;不携带此参数则表示更新默认配置文件参数。
  • 删除桶内全部分段上传任务 本章节案例中的所有命令均以Linux操作系统为例,提供删除桶内全部分段上传操作指导。 假设bucket-test桶内包含如下分段上传任务: obs://bucket-test/task1.txt uploadid1obs://bucket-test/task1.txt uploadid2obs://bucket-test/task2.txt uploadid3obs://bucket-test/task3.txt uploadid4obs://bucket-test/src1/obs://bucket-test/src1/task4.txt uploadid5obs://bucket-test/src2/obs://bucket-test/src2/task5.txt uploadid6 可以使用如下命令一次性删除桶内全部分段上传任务的碎片: ./obsutil abort obs://bucket-test -r -f 父主题: 常见示例
  • 命令结构 Windows操作系统 交互模式更新配置 obsutil config [-interactive] [-crr] [-config=xxx] 直接更新配置 obsutil config [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] [-crr] [-config=xxx] macOS/Linux操作系统 交互模式更新配置 ./obsutil config [-interactive] [-crr] [-config=xxx] 直接更新配置 ./obsutil config [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] [-crr] [-config=xxx]
  • 运行示例 以Windows操作系统为例,运行obsutil config -interactive,更新默认配置文件的访问密钥和OBS服务地址。 obsutil config -interactivePlease input your ak:xxxxxxxxxxxxxxxxxxxxxxxxxPlease input your sk:xxxxxxxxxxxxxxxxxxxxxxxxxPlease input your endpoint:xxxxxxxxxxxxxxxxxxxxxxxxxPlease input your token:xxxxxxxxxxxxxxxxxxxxxxxxxConfig file url: C:\Users\tools\.obsutilconfigUpdate config file successfully! 以Linux操作系统为例,运行./obsutil config -interactive,更新默认配置文件的访问密钥和OBS服务地址。 ./obsutil config -interactivePlease input your ak:xxxxxxxxxxxxxxxxxxxxxxxxxPlease input your sk:xxxxxxxxxxxxxxxxxxxxxxxxxPlease input your endpoint:xxxxxxxxxxxxxxxxxxxxxxxxxPlease input your token:xxxxxxxxxxxxxxxxxxxxxxxxxConfig file url: /root/.obsutilconfigUpdate config file successfully!
  • 功能说明 将源桶指定路径下的所有对象同步到目标桶指定路径,使两边内容保持一致。这里的增量同步有两层含义: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 Start at 2024-09-25 04:48:10.1147483 +0000 UTCParallel: 5 Jobs: 5Threshold: 50.00MB PartSize: autoCheckpointDir: C:\Users\Administrator\.obsutil_checkpointTask id: 104786c8-27c2-48fc-bc6a-5886596fb0eOutputDir: C:\Users\Administrator\.obsutil_output[=============================================================] 100.00% 10/s 0sSucceed count: 5 Failed count: 0Metrics [max cost:298 ms, min cost:192 ms, average cost:238.00 ms, average tps:9.71, transferred size: 7.20MB]Task id: 0476929d-9d23-4dc5-b2f8-0a0493f027c5 更多运行示例,请参见同步复制示例。
  • 参数说明 参数 约束 描述 failed 必选 按最后修改时间列举指定文件夹中cp命令及sync命令生成的失败结果清单文件。 说明: 当前不支持递归地对指定文件夹下的所有文件进行扫描,仅支持列举指定路径根目录下的失败结果清单文件。 limit 附加参数,可选 查询文件的最大个数,小于等于0表示列举所有结果,不设置时的默认值为1000。 o 附加参数,可选 指定结果清单文件所在的文件夹,不指定时默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。
  • 运行示例 以Windows操作系统为例。运行示例如下: obsutil ls -failedFileName ModTime TaskId cp_failed_report_xxx_ccb9f044-7768-4948-ae6d-4628ae9659a5.txt 2019-05-26 19:33:13.516813 +0800 CS T ccb9f044-7768-4948-ae6d-4628ae9659a5 sync_failed_report_xxx_59104460-d10e-42a1-9f76-03f7bd3eaeb4.txt 2019-05-27 14:30:19.91126 +0800 CST 59104460-d10e-42a1-9f76-03f7bd3eaeb4 Get 2 last modified failed report files.
  • 命令结构 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。
  • 下载示例 本章节案例中的所有命令均以Linux操作系统为例,提供下载操作指导。 假设bucket-test桶内包含如下对象: obs://bucket-test/test1.txtobs://bucket-test/test2.txtobs://bucket-test/test3.txtobs://bucket-test/test4.txtobs://bucket-test/test5.txtobs://bucket-test/test6.txtobs://bucket-test/src1/obs://bucket-test/src1/test7.txtobs://bucket-test/src2/obs://bucket-test/src2/test8.txtobs://bucket-test/src2/src3/obs://bucket-test/src2/src3/test9.txt 基于以上桶内对象格式,不同下载场景下的命令示例如下: 下载bucket-test桶中的test1.txt文件至本地的src1文件夹中,下载命令如下: ./obsutil cp obs://bucket-test/test1.txt /src1 下载完成后,本地生成的文件为: └── src1 └── test1.txt 下载bucket-test桶中的test1.txt文件至本地,如果本地不存在test.txt文件,则直接下载且下载后命名为text.txt,如果本地已存在test.txt文件,则以test1.txt内容覆盖test.txt进行下载。下载命令如下: ./obsutil cp obs://bucket-test/test1.txt /test.txt 下载完成后,本地文件为: └── test.txt 递归下载bucket-test桶中的src2文件夹中的所有文件和文件夹(包括src2文件夹本身)至本地已存在的src1文件夹,且下载过程中不进行询问操作,下载命令为: ./obsutil cp obs://bucket-test/src2 /src1 -r -f 下载完成后,本地生成的文件为: └── src1 └── src2 ├── src3 └── test9.txt └── test8.txt 递归下载bucket-test桶中的src2文件夹中的所有文件和文件夹(不包括src2文件夹本身)至本地已存在的src1文件夹,且下载过程中不进行询问操作,下载命令为: ./obsutil cp obs://bucket-test/src2 /src1 -r -f -flat 下载完成后,本地生成的文件为: └── src1 ├── src3 └── test9.txt └── test8.txt 递归下载bucket-test桶中的所有文件至本地已存在的src0文件夹中,且下载过程中不进行询问操作,下载命令为: ./obsutil cp obs://bucket-test /src0 -r -f 下载完成后,本地生成的文件为: └── src0 ├── test1.txt ├── test2.txt ├── test3.txt ├── test4.txt ├── test5.txt ├── test6.txt ├── src1 └── test7.txt └── src2 ├── src3 └── test9.txt └── test8.txt 排除下载bucket-test桶中src1下的src2及其包含的所有文件和文件夹,命令如下: ./obsutil cp obs://bucket-test/src1/ src1 -exclude "*src1/src2*" -r -f -mf 下载成功4个对象,下载信息中包含Exclude及内容字样。 ./obsutil cp obs://bucket-test/src1/ src1 -exclude "*src1/src2*" -r -f -mfParallel: 5 Jobs: 5Threshold: 50.00MB PartSize: autoVerifyLength: false VerifyMd5: falseExclude: *src1/src2*Include:CheckpointDir: xxxxOutputDir: xxxxTempFileDir: xxxx[====================================================] 100.00% tps:87.78 ?/s 4/4 2.39KB/2.39KB 223msSucceed count: 4 Failed count: 0Succeed bytes: 2.39KBMetrics [max cost:147 ms, min cost:77 ms, average cost:56.00 ms, average tps:8.85, transferred size:2.39KB] 下载完成后,本地生成的文件为: └── src1 ├── src3 └── test9.txt └── test7.txt 父主题: 常见示例
  • 参数说明 参数 约束 描述 authorization_code 或 file://authorization_code_file_url 必选 授权码。 说明: 如果以“file://”开头,则表明授权码是从本地文件中获取。 file_or_folder_url 下载对象时必选 本地文件/文件夹路径。 folder_url 批量下载时必选 本地文件夹路径。 key 附加参数,下载对象时必选 批量下载时可选 待下载的对象名,或批量下载的对象名前缀。 下载对象时,该值不能为空,最终保存在本地的位置及命名规则如下: 如果file_or_folder_url不存在,则工具会判断其是否以“/”或“\”结尾,如果是,则会以该路径创建文件夹,将对象下载到该新建的文件夹下; 如果file_or_folder_url不存在,且不以“/”或“\”结尾,则以该值作为文件名,将对象下载到本地; 如果file_or_folder_url为已存在的文件,则以该值作为文件名,将对象覆盖下载到本地; 如果file_or_folder_url为已存在的文件夹,则以对象名为文件名,将对象覆盖下载到file_or_folder_url指定的文件夹下。 批量下载时,最终保存在本地的位置规则如下: 如果该值为空,则表示将授权码中授权路径下的所有对象下载到folder_url指定的文件夹下; 如果该值不为空,则将桶内以该值作为对象名前缀的内容下载到folder_url指定的文件夹下。 说明: 如果该值不为空,其必须是授权码中授权路径的子集; 批量下载且该值不为空时,如果未设置flat选项,则下载的本地文件会包含上一级父对象名前缀;如果设置了flat选项,则下载的本地文件不包含上一级父对象名前缀。 须知: 批量下载时,如果设置了flat选项,且如果创建授权码时的对象名前缀为空或者不以“/”结尾,则可能导致下载的对象列表为空。 ac 附加参数,可选 提取码。 说明: 如果未使用该参数设置提取码,obsutil工具会以交互模式提示输入提取码; 提取码必须为6位。 r 附加参数,批量下载时必选 按指定的对象名前缀批量下载对象。 fr 附加参数,下载对象时可选 下载对象时生成结果清单文件。 flat 附加参数,批量下载时可选 批量下载时,不包含上一级父对象名前缀。 tempFileDir 附加参数,可选 分段下载时保存临时文件的文件夹,默认为配置文件中的defaultTempFileDir。 说明: 如果该值为空,且配置文件中的defaultTempFileDir也为空,则分段下载时生成的临时文件会保存在待下载文件的同目录下并以.obs.temp结尾。 由于分段下载时生成的临时文件会保存在该目录,请确保运行obsutil的用户对该路径有写权限; 该路径的可用空间需要大于待下载对象的大小。 dryRun 附加参数,可选 测试模式运行,不执行实际的下载操作。 u 附加参数,可选 增量下载操作,设置该参数后,下载每个对象时会对比本地对应路径的文件,仅在文件不存在,或者文件大小与对象大小不一致,或者文件的最后修改时间早于对象的最后修改时间时进行下载。 注意: 在比较每个本地文件与桶内对象差异时,会产生一次HEAD请求费用。 vlength 附加参数,可选 下载完成后,验证本地文件大小是否与桶中对象的大小一致。 vmd5 附加参数,可选 下载完成后,验证本地文件的MD5值是否与桶中对象的MD5值一致。 说明: 桶中对象必须包含元数据x-obs-meta-md5chksum,否则会忽略MD5值校验。 注意: 如果您的业务涉及加密场景,请勿使用该参数。 p 附加参数,可选 每个分段下载任务的最大并发数,默认为配置文件中的defaultParallels。 threshold 附加参数,可选 开启分段下载任务的阈值,单位:字节,默认为配置文件中的defaultBigfileThreshold。 说明: 如果待下载的对象小于该阈值,则使用直接下载模式;否则使用分段下载模式; 直接下载模式不会产生断点记录文件,不支持断点续传; 支持带容量单位配置,例如,配置1MB代表1048576字节。 ps 附加参数,可选 每个分段下载任务的段大小,单位:字节,默认为配置文件中的defaultPartSize。 说明: 支持带容量单位配置,例如,配置1MB代表1048576字节; 支持配置为auto,此时obsutil会根据源对象大小自动设置每个分段任务的段大小。 cpd 附加参数,可选 生成断点记录文件的文件夹,默认为运行obsutil命令的用户目录的子文件夹.obsutil_checkpoint。 说明: 每个分段下载任务会产生唯一对应的断点记录文件并保存至该文件夹的down子文件夹下,分段任务执行成功后,对应的断点记录文件会被自动删除;分段任务执行失败或被中断后,下次执行该分段任务时会尝试通过对应的断点记录文件恢复任务。 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。 说明: 结果清单文件命名规则:share-cp_{succeed | failed | warning}_report_时间_TaskId.txt。 单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024,可在配置文件中通过recordMaxLogSize和recordBackups分别配置。 当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件及日志路径下的日志文件; config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • 命令结构 Windows操作系统 直接输入授权码下载单个对象 obsutil share-cp authorization_code file_or_folder_url -key=xxx [-ac=xxx] [-dryRun] [-tempFileDir=xxx] [-u] [-vlength] [-vmd5] [-p=1] [-threshold=52428800] [-ps=auto] [-cpd=xxx][-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 使用文件路径传入授权码下载单个对象 obsutil share-cp file://authorization_code_file_url file_or_folder_url -key=xxx [-ac=xxx] [-dryRun] [-tempFileDir=xxx] [-u] [-vlength] [-vmd5] [-p=1] [-threshold=52428800] [-ps=auto] [-cpd=xxx][-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 直接输入授权码批量下载对象 obsutil share-cp authorization_code folder_url -r [-key=xxx] [-ac=xxx] [-dryRun] [-tempFileDir=xxx] [-f] [-u] [-vlength] [-vmd5] [-flat] [-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] 使用文件路径传入授权码批量下载对象 obsutil share-cp file://authorization_code_file_url folder_url -r [-key=xxx] [-ac=xxx] [-dryRun] [-tempFileDir=xxx] [-f] [-u] [-vlength] [-vmd5] [-flat] [-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 share-cp authorization_code file_or_folder_url -key=xxx [-ac=xxx] [-dryRun] [-tempFileDir=xxx] [-u] [-vlength] [-vmd5] [-p=1] [-threshold=52428800] [-ps=auto] [-cpd=xxx][-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 使用文件路径传入授权码下载单个对象 ./obsutil share-cp file://authorization_code_file_url file_or_folder_url -key=xxx [-ac=xxx] [-dryRun] [-tempFileDir=xxx] [-u] [-vlength] [-vmd5] [-p=1] [-threshold=52428800] [-ps=auto] [-cpd=xxx][-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 直接输入授权码批量下载对象 ./obsutil share-cp authorization_code folder_url -r [-key=xxx] [-ac=xxx] [-dryRun] [-tempFileDir=xxx] [-f] [-u] [-vlength] [-vmd5] [-flat] [-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] 使用文件路径传入授权码批量下载对象 ./obsutil share-cp file://authorization_code_file_url folder_url -r [-key=xxx] [-ac=xxx] [-dryRun] [-tempFileDir=xxx] [-f] [-u] [-vlength] [-vmd5] [-flat] [-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 archive [file_or_folder_url] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 归档到指定的桶 obsutil archive obs://bucket[/key] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] macOS/Linux操作系统 归档到本地 obsutil archive [file_or_folder_url] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 归档到指定的桶 obsutil archive obs://bucket[/key] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 运行示例 以Windows操作系统为例,运行obsutil archive,归档日志到工具运行的同级目录。 obsutil archive[----------------------------------------------------------] 100.00% 15/15 35msSucceed to archive log files to [D:\obsutil\obsutil_log.zip]
  • 参数说明 参数 约束 描述 file_or_folder_url 可选 日志归档路径,规则如下: 如果该值为空,则以obsutil_log.zip为归档文件名,将日志归档到obsutil命令同级目录下; 如果file_or_folder_url不存在,则工具会判断其是否以“/”或“\”结尾,如果是,则会以该路径创建文件夹,并以obsutil_log.zip为归档文件名将日志归档到该新建的文件夹下; 如果file_or_folder_url不存在,且不以“/”或“\”结尾,则以该值作为归档文件名,将日志归档到本地; 如果file_or_folder_url为已存在的zip文件,则以该值作为归档文件名,将日志覆盖归档到本地; 如果file_or_folder_url为已存在的文件夹,则以obsutil_log.zip为归档文件名,将日志覆盖归档到file_or_folder_url指定的文件夹下。 说明: 归档文件均是以.zip结尾的压缩文件。 bucket 归档到指定的桶时必选 桶名。 key 归档到指定的桶时可选 归档日志到指定的桶时的对象名/对象名前缀。 规则如下: 如果该值为空,则以obsutil_log.zip为对象名,将日志归档到桶的根目录; 如果该值不为空,如果该值以“/”结尾,则以该值作为对象名前缀归档日志,对象名为该值+obsutil_log.zip;否则,将该值作为对象名进行归档; config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • i/o timout、EOF错误原因定位及解决 i/o timeout、EOF报错是两种常见的因为网络原因导致请求失败的场景,通常是由于网络波动等原因导致;常见的定位思路包括: 通过ping桶 域名 (bucketName.endpoint)判断本地到指定访问的桶域名之间的网络是否不通;如果不通优先排查本地网络问题。 如果问题出现概率较大,且域名可以ping通的情况下,可以通过修改endpoint为http协议后采用抓包软件进行网络抓包,抓包后可以具体分析实际网络链路中是否存在丢包等问题从而针对性解决。 解决思路: 在网络不通的情况下优先解决本地网络问题;如需配置代理可以参考为obsutil配置HTTP代理。 在偶现该问题的情况下,可以考虑重试命令以规避该问题;针对上传/下载/复制等场景,可以在执行cp时指定-u参数进行增量上传,可以避免重试批量任务中已经成功完成的部分任务。 在网络情况不理想的场景下,针对上传/下载/复制等场景,可以考虑适当减小defaultParallels(-p)和defaultJobs(-j)参数来降低整体的并发任务数量,减少问题出现的概率。 父主题: 常见问题
  • 命令结构 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 chattri obs://bucket-test/key -acl=public-read,设置对象的访问策略为公共读。 obsutil chattri obs://bucket-test/key -acl=public-readStart at 2024-09-30 08:17:15.5572914 +0000 U TCS et 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-readStart at 2024-09-30 08:18:03.105373 +0000 UTC[------------------------------------------------] 100.00% tps:155.15 5/5 233msSucceed count: 5 Failed count: 0Metrics [max cost:177 ms, min cost:53 ms, average cost:102.40 ms, average tps:20.41]Task id: 9d7f73ff-f747-4fdd-9b2a-815ba2dc3b07
  • Windows操作系统下,下载对象时发现本地和云上对象数量不一致 如果发现下载后本地文件和文件夹数量之和小于云上对象数量(OBS不区分文件或文件夹,统称为对象),并且当前操作系统是Windows,这个是因为Windows文件系统将文件和目录名称视为不区分大小写,FOO.txt和foo.txt将被视为相同文件;但是在OBS中是区分大小写的,FOO.txt和foo.txt将被视为不同文件。 比如桶中存在以下对象(大小写不一致): obsutil ls obs://testStart at 2024-01-17 01:33:37.6378193 +0000 UTCListing 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: 498BFolder number: 2File number: 2 使用cp命令下载整个桶的对象到Windows的test目录下: obsutil cp obs://test ./test -r -fStart at 2024-01-17 01:39:40.4700311 +0000 UTCParallel: 5 Jobs: 5Threshold: 50.00MB PartSize: autoVerifyLength: false VerifyMd5: falseCheckpointDir: C:\Users\Administrator\.obsutil_checkpointTask id: 72c5ac1c-68c0-4206-95d6-18a193bfa77eOutputDir: C:\Users\Administrator\.obsutil_outputTempFileDir: C:\Users\Administrator\temp[---------------------------] 100.00% tps:484.98 162.11KB/s 4/4 498B/498B 205msSucceed count: 4 Failed count: 0Succeed bytes: 498BMetrics [max cost:86 ms, min cost:85 ms, average cost:43.25 ms, average tps:9.13, transferred 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的内容。 父主题: 常见问题
  • 运行示例 以Windows操作系统为例,运行obsutil share-ls xxx -ac=123456 -limit=1,使用授权码查询桶内对象。 obsutil share-ls xxx -ac=123456 -limit=1The authorized prefix is [test/test.tar.gz]Listing objects .Object list:key LastModified Size StorageClass ETagobs://bucket-test/test/test.tar.gz 2019-07-11T14:50:59Z 48.92KB standard "1dd27294ad2f152b43cd111e9fe3990f"Total size of prefix [test/]: 48.92KBFolder number: 0File number: 1The authorized prefix is [test/] 以Windows操作系统为例,运行obsutil share-ls xxx -ac=123456 -limit=1,使用授权码查询桶内目录。 obsutil share-ls xxx -ac=123456 -limit=1The authorized prefix is [test]Listing objects .Folder list:obs://bucket-test/test/Object list:key LastModified Size StorageClass ETagobs://bucket-test/test/test.tar.gz 2019-07-11T14:50:59Z 48.92KB standard "1dd27294ad2f152b43cd111e9fe3990f"Total size of prefix [test/]: 48.92KBFolder number: 1File number: 1The authorized prefix is [test/]
  • 参数说明 参数 约束 描述 authorization_code 或 file://authorization_code_file_url 必选 授权码。 说明: 如果以“file://”开头,则表明授权码是从本地文件中获取。 ac 附加参数,可选 提取码。 说明: 如果未使用该参数设置提取码,obsutil工具会以交互模式提示输入提取码; 提取码必须为6位。 prefix 附加参数,可选 使用授权码列举对象时的对象名前缀。 说明: 如果该值不为空,其必须是授权码中授权路径的子集。 如果该值为空,则表示列举授权码中授权路径下的所有对象。 s 附加参数,可选 以精简格式显示查询结果。 说明: 在精简格式下,返回结果只包含对象名。 d 附加参数,可选 仅列举当前目录下的对象和子目录,而非递归列举所有对象和子目录。 说明: OBS中约定以“/”作为目录分隔符。 marker 附加参数,可选 使用授权码列举桶内对象时的起始位置,返回结果是对象名按照字典序排序后该参数以后的所有对象。 bf 附加参数,可选 列举结果中字节数的显示格式。支持的值: human-readable raw 说明: 如果未设置该参数,则列举结果中字节数的显示格式由配置文件中的humanReadableFormat参数决定。 limit 附加参数,可选 列举结果的最大个数,小于等于0表示列举所有结果,不设置时的默认值为1000。 说明: 如果桶内对象较多,建议设置该值限制每次列举的对象个数,列举结束后,如果仍有对象,会在结果中返回下次请求的marker,用于继续列举剩余的对象。 format 附加参数,可选 指定以自定义格式打印列举结果。当前仅支持值[default],指定列举结果在一行显示。 config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • 命令结构 Windows操作系统 直接输入授权码 obsutil share-ls authorization_code [-ac=xxx] [-prefix=xxx] [-s] [-d] [-marker=xxx] [-bf=xxx] [-limit=1] [-format=default] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 使用文件路径传入授权码 obsutil share-ls file://authorization_code_file_url [-ac=xxx] [-prefix=xxx] [-s] [-d] [-marker=xxx] [-bf=xxx] [-limit=1] [-format=default] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] macOS/Linux操作系统 直接输入授权码 ./obsutil share-ls authorization_code [-ac=xxx] [-prefix=xxx] [-s] [-d] [-marker=xxx] [-bf=xxx] [-limit=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 使用文件路径传入授权码 ./obsutil share-ls file://authorization_code_file_url [-ac=xxx] [-prefix=xxx] [-s] [-d] [-marker=xxx] [-bf=xxx] [-limit=1] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 运行示例 以Windows操作系统为例,运行obsutil help mb,查看创建桶命令的帮助文档。 obsutil help mbSummary: create a bucket with the specified parametersSyntax: obsutil mb obs://bucket [-acl=xxx] [-location=xxx] [-fs] [-az=xxx] [-sc=xxx] [-config=xxx] [-i=xxx] [-k=xxx] [-t=xxx] [-e=xxx]Options: -fs create a bucket that supports POSIX -az=xxx the AZ of the bucket, possible values are [multi-az] -sc=xxx the default storage class of the bucket, possible values are [standard|warm|cold|deep-archive] -acl=xxx the ACL of the bucket, possible values are [private|public-read|public-read-write] -location=xxx the region where the bucket is located -epid=xxx the enterprise project id of the bucket -kms=xxx the encryption id of the bucket -config=xxx the path to the custom config file when running this command -e=xxx endpoint -i=xxx access key ID -k=xxx security key ID -t=xxx security token摘要: 按照用户指定的桶名和参数创建一个新桶语法: obsutil mb obs://bucket [-fs] [-az=xxx] [-acl=xxx] [-sc=xxx] [-location=xxx] [-config=xxx]选项: -fs 创建支持文件接口(POSIX)的桶 -az=xxx 创桶时可指定的可用区。支持的值:[multi-az] -acl=xxx 创桶时可指定的预定义访问策略。支持的值:[private|public-read|public-read-write] -sc=xxx 创桶时可指定的桶的默认存储类型。支持的值:[standard|warm|cold] -location=xxx 桶所在的区域 -config=xxx 运行当前命令时的自定义配置文件
  • 参数说明 参数 约束 描述 command 可选 查看某个具体命令的帮助文档,当前支持的命令如下: abort,删除分段上传任务 chattri,设置对象属性 cp,上传对象、复制对象、下载对象 ls,列举桶、列举对象、列举分段上传任务 mb,创建桶 mkdir,创建文件夹 mv,移动对象 restore,恢复归档存储对象 rm,删除桶、删除对象 sign,生成对象的下载链接 stat,查询桶属性、查询对象属性 sync,增量同步上传对象、增量同步复制对象、增量同步下载对象 archive,归档日志文件 clear,删除断点记录文件 config,更新配置文件 help,查看命令帮助 version,查看版本号
  • 同步下载示例 本章节案例中的所有命令均以Linux操作系统为例,提供同步下载操作指导。 假设bucket-test桶内包含如下对象: obs://bucket-test/src1/obs://bucket-test/src1/test3.txtobs://bucket-test/src1/src2/obs://bucket-test/src1/src2/test1.txtobs://bucket-test/src1/src2/test2.txtobs://bucket-test/src1/src3/ 假设本地文件夹的格式如下: └── src1 └── test3.txt 基于以上桶内对象和本地文件夹的格式,不同场景下同步下载的示例如下: 同步bucket-test的src1文件夹中的所有文件和文件夹至本地已存在的src1文件夹中,同步命令如下: ./obsutil sync obs://bucket-test/src1 /src1 同步下载成功后,本地src1文件夹中生成的内容如下: └── src1 ├── src2 ├── test1.txt └── test2.txt ├── src3 └── test3.txt 父主题: 常见示例
  • 常见问题 作为内置命令后如何找到obsutil配置文件路径? obsutil命令同级目录下的.obsutilconfig文件即为工具obsutil的配置文件。您也可以运行obsutil config来获取配置文件路径,示例如下: obsutil configConfig file url: D:\tools\.obsutilconfig obsutil作为内置命令后如何卸载? Windows操作系统卸载步骤: 运行where obsutil找到obsutil命令的路径: where obsutilE:\tools\bin\obsutil.exe 运行del PATH删除obsutil命令: del E:\tools\bin\obsutil.exe PATH为obsutil命令的路径,上例中为:E:\tools\bin\obsutil.exe。 macOS/Linux操作系统卸载步骤: 运行which obsutil找到obsutil命令的路径: which obsutil/obsutil/obsutil 运行rm -rf PATH删除obsutil命令: rm -rf /obsutil/obsutil PATH为obsutil命令的路径,上例中为:/obsutil/obsutil。 恢复系统环境变量:删除/etc/profile文件中设置的obsutil工具的PATH。 假设/etc/profile文件中有此行内容export PATH=$PATH:/obsutil,则删除此行,或者有此行内容export PATH=$PATH:/test/bin:/obsutil:/test1,则删除:/obsutil,即修改为export PATH=$PATH:/test/bin:/test1。 解决macOS/Linux操作系统运行obsutil内置命令失败的问题。 运行obsutil help命令,如果提示“Permission denied”错误时,请执行命令chmod 755 OBSUTIL_PATH(OBSUTIL_PATH为/obsutil目录下的obsutil路径),为该工具增加可执行权限; 如果提示“command not found”错误时,请重新登录; 如果提示“Cannot create parent folder for xx/.obsutilconfig, xx Permission denied ”错误时,请确定该用户的家目录是否存在。 ubuntu系统用useradd命令添加用户,不会默认创建用户家目录,需要手动创建,建议用adduser命令添加用户。 解决macOS/Linux操作系统运行obsutil内置命令无法生成日志文件的问题。 如果在配置文件中已正常配置了sdkLogPath和utilLogPath,但运行命令后无法生成日志文件,请确认运行命令的用户对sdkLogPath和utilLogPath是否有读写权限。
  • 列举示例 本章节案例中的所有命令均以Linux操作系统为例,提供列举操作指导。 假设bucket-test桶内包含如下对象: obs://bucket-test/test1.txtobs://bucket-test/test2.txtobs://bucket-test/test3.txtobs://bucket-test/test4.txtobs://bucket-test/test5.txtobs://bucket-test/test6.txtobs://bucket-test/src1/obs://bucket-test/src1/test7.txtobs://bucket-test/src2/obs://bucket-test/src2/test8.txt 基于以上对象格式,不同场景下列举对象的命令示例如下: 只列举bucket-test桶中的3个对象,列举命令如下: ./obsutil ls obs://bucket-test -limit=3 返回结果按照对象名和版本号以字典序排列后,结果如下: obs://bucket-test/test1.txtobs://bucket-test/test2.txtobs://bucket-test/test3.txt 列举bucket-test桶中从test3.txt之后的3个对象,列举命令如下: ./obsutil ls obs://bucket-test -limit=3 -marker=test3.txt 返回结果按照对象名和版本号以字典序排列后,结果如下: obs://bucket-test/test4.txtobs://bucket-test/test5.txtobs://bucket-test/test6.txt 只列举bucket-test桶根目录下的文件和子目录,不进行递归操作,即不列举子目录下的内容,列举命令如下: ./obsutil ls obs://bucket-test -d 返回结果按照对象名和版本号以字典序排列后,结果如下: obs://bucket-test/test1.txtobs://bucket-test/test2.txtobs://bucket-test/test3.txtobs://bucket-test/test4.txtobs://bucket-test/test5.txtobs://bucket-test/test6.txtobs://bucket-test/src1/obs://bucket-test/src2/ 父主题: 常见示例
  • 配置方式 启用链式自动获取访问密钥功能。 将.obsutilconfig配置文件中的autoChooseSecurityProvider配置为true。 配置obsutil获取访问密钥的方法。 如果希望从.obsutilconfig配置文件中获取访问密钥,则将访问密钥配置在.obsutilconfig配置文件的ak、sk参数中(.obsutilconfig配置文件在初始化时已经自动写入密钥,初始化操作参见初始化配置)。 如果希望通过系统环境变量获取访问密钥,则将环境变量中的OBS_AC CES S_KEY_ID设置为ak,OBS_SECRET_ACCESS_KEY设置为sk,OBS_SECURITY_TOKEN设置为token(可为空)。 如果希望通过ECS接口自动获取临时访问密钥,则只需要确保该ECS绑定了 IAM 对ECS的云服务委托,并给委托配置OBS权限。具体请参见在ECS上获取Security Key。
  • 访问密钥查找流程 从.obsutilconfig配置文件中(ak、sk、token)查找访问密钥,如果访问密钥不为空,结束查找,否则继续下一步查找。 从系统环境变量(OBS_ACCESS_KEY_ID、OBS_SECRET_ACCESS_KEY、OBS_SECURITY_TOKEN)查找访问密钥,如果访问密钥不为空,结束查找,否则继续下一步查找。 从当前使用obsutil的ECS查找临时访问密钥,如果临时访问密钥不为空,结束查找,否则使用匿名用户访问OBS服务。
共100000条