华为云用户手册

  • 运行示例 以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操作系统 设置单个对象属性 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操作系统下,下载对象时发现本地和云上对象数量不一致 如果发现下载后本地文件和文件夹数量之和小于云上对象数量(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 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 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 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(可为空)。 如果希望通过E CS 接口自动获取临时访问密钥,则只需要确保该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服务。
  • 将obsutil设为Windows操作系统内置命令 方式一:使用脚本自动配置(推荐) 进入obsutil工具所在目录。 确保setup.bat和obsutil.exe位于同目录下,双击运行setup.bat文件。 检验是否配置成功:在cmd窗口中执行命令obsutil help,出现工具帮助信息则表示配置成功。 如果使用脚本自动配置完成后,执行命令obsutil help出现“'obsutil' 不是内部或外部命令,也不是可运行的程序或批处理文件”,则表明配置失败,请尝试手动配置方式。 方式二:手动配置 在cmd窗口中执行echo %PATH%命令查看当前系统已配置的所有PATH,选择任意一个PATH作为操作路径。 执行命令:mklink PATH/obsutil.exe OBSUTIL_PATH,将obsutil配置为系统内置命令。 PATH为步骤1选择的操作路径;OBSUTIL_PATH为obsutil.exe工具的绝对路径。 检验是否配置成功:在cmd窗口中执行命令obsutil help,出现工具帮助信息则表示配置成功。
  • 将obsutil设为macOS/Linux操作系统内置命令 方式一:使用脚本自动配置(推荐) 运行脚本,参数为obsutil的路径。假设obsutil位于/home/user1目录下,执行命令为: source setup.sh /home/user1/obsutil 必须以root用户运行脚本; 脚本参数是obsutil的相对路径或绝对路径。 必须以“source setup.sh”或“. setup.sh”命令运行脚本。 检验是否配置成功:在任意目录下执行命令obsutil help,出现工具帮助信息则表示配置成功。 如果使用脚本自动配置完成后,执行命令obsutil help出现“-bash: obsutil: command not found”,请尝试重新登录macOS/Linux命令行,如果问题仍未解决,则表明配置失败,请尝试手动配置方式。 方式二:手动配置。 创建obsutil工具目录,执行命令: mkdir /obsutil 如果已有此目录,可忽略该步骤。 必须保证执行用户是root。 设置工具目录为755权限,执行命令: chmod 755 /obsutil 如果此目录权限为drwxr-xr-x,可忽略该步骤。 必须保证执行用户是root。 拷贝obsutil工具到步骤1创建的目录下,并修改其权限为711。假设工具原路径为/home/test/obsutil,执行命令为: cp /home/test/obsutil /obsutilchmod 711 /obsutil/obsutil 执行命令:vi /etc/profile,按i键进入Insert模式编辑文件,在文件末尾新增一行,内容为:export PATH=$PATH:/obsutil,然后按ESC键退出编辑,然后输入:wq!保存退出。 如果/etc/profile文件已有该新增行,可忽略此步骤。 执行命令:echo $PATH,查看当前环境变量,如果查询结果中包含:/obsutil则说明已有/obsutil环境变量,请直接执行下一步骤,否则执行source /etc/profile命令。 检验是否配置成功:在任意目录下执行命令obsutil help,出现工具帮助信息则表示配置成功。
  • 命令结构 Windows操作系统 obsutil create-share obs://bucket[/prefix] [-ac=xxx] [-vp=xxx] [-dst=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] macOS/Linux操作系统 ./obsutil create-share obs://bucket[/prefix] [-ac=xxx] [-vp=xxx] [-dst=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 参数说明 参数 约束 描述 bucket 必选 桶名 prefix 可选 对象名前缀,如果不为空,代表分享以该前缀开头的所有对象;如果为空,代表分享整个桶内的对象。 说明: 设置该值时,建议均以“/”结尾。 ac 附加参数,可选 提取码。 说明: 如果未使用该参数传入提取码,obsutil工具会以交互模式提示输入提取码。 提取码必须为6位。 vp 附加参数,可选 授权码的有效期,以当前时间为基准,默认值为1天,代表生成的授权码将在1天后变为无效。 说明: 该参数支持多种时间单位的配置方式,包括:m(月)、w(周)、d(天)、h(小时)、min(分钟)、s(秒),例如1d代表一天内有效,2w代表两周内有效,3h代表三个小时内有效。 如果不带时间单位,则该参数为授权码有效的秒数,例如3600代表3600秒内有效。 dst 附加参数,可选 生成授权码的保存路径。 config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • 命令结构 Windows操作系统 obsutil bucketpolicy obs://bucket -method=delete [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] macOS/Linux操作系统 ./obsutil bucketpolicy obs://bucket -method=delete [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 运行示例 以Windows操作系统为例,运行obsutil bucketpolicy obs://bucket -method=delete,指定删除桶bucket的桶策略。 obsutil bucketpolicy obs://bucket -method=deleteStart at 2024-09-30 08:09:29.6396262 +0000 UTCDelete bucketPolicy succeed, requestId is [04050000016836C5DA6FB21F14A2A0C0]
  • 运行示例 以Windows操作系统为例,运行obsutil create-share obs://bucket/test/ -ac=123456 -vp=1m,创建一个月内有效的授权码。 obsutil create-share obs://bucket/test/ -ac=123456 -vp=1mAuthorization Code:https://e-share.obs-website.cn-north-4.myhuaweicloud.com?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAccess Code:123456Valid Until:Sat, 26 Oct 2019 11:28:10 GMT +8000
  • 命令结构 Windows操作系统 同步上传文件 obsutil sync file_url obs://bucket[/key] [-arcDir=xxx] [-dryRun] [-link] [-vlength] [-vmd5] [-p=1] [-threshold=5248800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-o=xxx] [-cpd=xxx] [-fr] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 同步上传文件夹 obsutil sync folder_url obs://bucket[/key] [-arcDir=xxx] [-dryRun] [-link] [-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] [-at] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] macOS/Linux操作系统 同步上传文件 ./obsutil sync file_url obs://bucket[/key] [-arcDir=xxx] [-dryRun] [-link] [-vlength] [-vmd5] [-p=1] [-threshold=5248800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-o=xxx] [-cpd=xxx] [-fr] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] 同步上传文件夹 ./obsutil sync folder_url obs://bucket[/key] [-arcDir=xxx] [-dryRun] [-link] [-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] [-at] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 参数说明 参数 约束 描述 file_url 同步上传文件时必选 本地文件路径。 folder_url 同步上传文件夹时必选 本地文件夹路径。 bucket 必选 桶名。 key 可选 同步上传文件时的对象名/对象名前缀,或同步上传文件夹时的对象名前缀。 规则如下: 同步上传文件时,如果该值为空,则将对象上传到桶的根目录,对象名为文件名。如果该值不为空,如果该值以“/”结尾,则以该值作为对象名前缀上传对象,对象名为该值+文件名;否则,将该值作为对象名进行上传; 同步上传文件夹时,如果该值为空,则将桶的根目录下的所有对象与本地文件夹下的所有内容保持一致;如果该值不为空,则将对象名前缀为该值的所有对象与本地文件夹下的所有内容保持一致。 说明: 同步上传文件夹时,如果该值不为空且不以“/”结尾,则工具会自动为该值末尾加上“/”作为对象名前缀。 请参考同步上传示例理解该参数的使用方式。 fr 附加参数,同步上传文件时可选 同步上传文件时生成结果清单文件。 arcDir 附加参数,可选 同步上传文件成功后的归档路径,上传成功后的文件会移动到该路径下。 dryRun 附加参数,可选 测试模式运行,不执行实际的上传操作。 link 附加参数,可选 上传软链接文件/文件夹指向的真实路径。 须知: 如果未指定该参数,而待上传的文件是一个软链接且该软链接指向的目标文件不存在,则Windows操作系统会产生“The system cannot find the file specified”的上传失败异常,而macOS/Linux操作系统会产生“No such file or directory”的上传失败异常。 文件夹软链接不能形成环,否则上传会以panic的形式退出;如果不希望产生panic,请在配置文件中配置panicForSymbolicLinkCircle为false。 vlength 附加参数,可选 同步上传完成后,验证上传到桶中对象的大小是否与本地文件大小一致。 vmd5 附加参数,可选 同步上传完成后,验证上传到桶中对象的MD5值是否与本地文件的MD5值一致。 说明: 如果待上传的本地文件较大,使用该参数将会因为计算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。 ps 附加参数,可选 每个分段上传任务的段大小,单位:字节,取值范围是100KB~5GB,默认为配置文件中的defaultPartSize。 说明: 支持带容量单位配置,例如,配置1MB代表1048576字节。 支持配置为auto,此时obsutil会根据源文件大小自动设置每个分段任务的段大小。 cpd 附加参数,可选 生成断点记录文件的文件夹,默认为运行obsutil命令的用户目录的子文件夹.obsutil_checkpoint。 说明: 每个分段上传任务会产生唯一对应的断点记录文件并保存至该文件夹的upload子文件夹下,分段任务执行成功后,对应的断点记录文件会被自动删除;分段任务执行失败或被中断后,下次执行该分段任务时会尝试通过对应的断点记录文件恢复任务。 j 附加参数,同步文件夹时可选 同步上传文件夹时批量任务的最大并发数,默认为配置文件中的defaultJobs。 说明: 工具会保证该值至少为1。 exclude 附加参数,同步文件夹时可选 不包含文件的匹配模式,如:*.txt。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符,例如abc*.txt代表匹配以abc开头以.txt结尾的任意文件。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 如果待上传的文件名匹配该参数,则跳过该文件的上传。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于文件全路径(含文件名和文件目录)。 该匹配模式仅对文件夹中的文件生效。 支持指定多个exclude参数,如-exclude=*.xxx -exclude=*.xxx include 附加参数,同步文件夹时可选 包含文件的匹配模式,如:*.jpg。 说明: 支持“*”匹配多个任意字符和“?”匹配单个任意字符。 您可以使用“\*”代表匹配“*”字符本身,使用“\?”代表匹配“?”字符本身。 首先执行exclude的匹配规则,如果待上传的文件名不匹配exclude,则判断待上传的文件名是否匹配该参数,如果匹配则上传该文件,否则跳过该文件的上传。 须知: 建议使用引号传递该匹配模式(macOS/Linux操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。 该匹配模式作用于文件全路径(含文件名和文件目录)。 该匹配模式仅对文件夹中的文件生效。 支持指定多个include参数,如-include=*.xxx -include=*.xxx at 附加参数,同步上传文件夹时可选 同步上传文件时指定按照文件最后访问时间作为timeRange匹配模式,仅上传最后访问时间满足timeRange时间段的文件。 说明: 需配合timeRange使用 disableDirObject 附加参数,同步上传多文件夹时可选 同步上传文件夹时,文件夹本身不会作为一个对象上传,在有很多空文件夹场景时候可以避免无用文件夹上传到对象存储桶中;文件夹下有文件时候,文件夹下文件依然会上传并保持原有路径格式,不受影响。 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。
  • 参数说明 参数 约束 描述 bucket 必选 桶名。 key 必选 对象名。 acl 可选 同时查询对象的访问策略。 bf 附加参数,可选 对象大小字节数的显示格式。支持的值: human-readable raw 说明: 如果未设置该参数,则对象大小字节数的显示格式由配置文件中的humanReadableFormat参数决定。 config 附加参数,可选 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 e 附加参数,可选 指定终端节点。 i 附加参数,可选 指定用户的AK。 k 附加参数,可选 指定用户的SK。 t 附加参数,可选 指定用户的securitytoken。
  • 运行示例 以Windows操作系统为例,运行obsutil stat obs://bucket-test/key,查询对象基本属性。 obsutil stat obs://bucket-test/keyStart at 2024-09-25 04:48:10.1147483 +0000 UTCKey: obs://bucket-test/keyLastModified: 2018-11-16T02:15:49ZSize: 7StorageClass: standardETag: 43d93b553855b0e1fc67e31c28c07b65ContentType: text/plainType: fileMetadata: key=value
  • 命令结构 Windows操作系统 obsutil stat obs://bucket/key [-acl][-bf=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx] macOS/Linux操作系统 ./obsutil stat obs://bucket/key [-acl][-bf=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  • 响应结果 字段名 描述 Key 对象名。 LastModified 对象的最后修改时间。 Size 对象的大小,单位:字节。 StorageClass 对象的存储类型。 MD5 对象真实的MD5值。 说明: 仅当使用cp命令并且配置了-vmd5选项上传对象后,才能查询到该值。 ETag 服务端计算的对象ETag值。 ContentType 对象的Content-Type。 Type 对象的类型。 Metadata 对象的自定义元数据。 说明: 对象有自定义元数据后,才能查询到该值。
  • 功能概述 obsutil提供的功能如表2所示。 表2 obsutil功能概述 功能 说明 桶基本操作 指定区域创建不同存储类型的桶、删除桶以及获取桶列表、桶配置信息等。 对象基本操作 管理对象,包括上传、下载、删除和列举对象等。 支持上传单个或批量上传多个文件或文件夹。 支持分段上传大文件。 支持增量同步上传、下载和复制对象。 支持复制单个对象或按对象名前缀批量复制多个对象。 支持移动单个对象或按对象名前缀批量移动多个对象。 支持对失败的上传、下载、复制等任务进行恢复。 日志记录 支持在客户端配置日志记录,记录对桶和对象的操作日志,方便统计与分析。 obsutil目前暂不支持高级的桶管理和对象管理操作,相关功能会在后续版本中开发,如需配置,建议使用 对象存储服务 控制台。相关文档请参考《对象存储服务用户指南》。
  • 运行示例 以Windows操作系统为例,运行obsutil rm obs://bucket-test,删除bucket-test桶。 obsutil rm obs://bucket-testStart at 2024-09-30 07:58:33.736622 +0000 UTCDo you want to delete bucket [bucket-test] ? Please input (y/n) to confirm:yDelete bucket [bucket-test] successfully!
  • 运行示例 以Windows操作系统为例,运行obsutil ls -limit=5,查询桶列表。 obsutil ls -limit=5Start at 2024-09-29 07:58:46.0506904 +0000 UTCBucket 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。
共99354条