华为云安装与使用
文章目录
- 华为云安装与使用
- 下载地址
- 修改 /etc/hosts
- 设置 AK/SK/Endpoint
- 查看桶名
- 查看桶内文件
- 通过 ./obsutil config -interactive 方式设置配置文件问题
- obsutil 命令行
- 快速使用
- 操作步骤
- 操作桶
- 上传文件
- 约束与限制
- 参数说明
- 更多上传示例
- 删除
- 下载对象
- Reference
- 欢迎关注公众号【三戒纪元】
下载地址
操作系统 | 下载地址 |
---|---|
Windows 64位 | obsutil_windows64 obsutil_windows64_sha256 |
Linux AMD 64 位 | obsutil_linux_amd64 obsutil_linux_amd64_sha256 |
Linux ARM 64 位 | obsutil_linux_arm64 obsutil_linux_arm64_sha256 |
macOS 6 4 位 | obsutil_mac64 obsutil_mac64_sha256 |
常见功能:
● 列举桶
● 上传对象
● 列举对象
Windows操作系统
- 在浏览器中打开表格中对应的下载地址将obsutil工具下载至本地。
- 下载完成后,将其解压至指定文件夹。
- 在解压后的文件夹中双击运行obsutil.exe即可开始使用。
输入账号名、AK、SK等值即可登录。
Linux操作系统
- 打开命令行终端,执行
wget
命令下载obsutil工具。
wget https://obs-community-intl.obs.ap-southeast-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz
- 在软件包所在目录,执行以下解压命令。
tar -xzvf obsutil_linux_amd64.tar.gz
- 进入obsutil所在目录,执行以下命令,为obsutil增加可执行权限。
chmod 755 obsutil
- 继续在目录中执行以下命令,如果能顺利返回obsutil版本号,说明安装成功。
./obsutil version
obsutil version:5.4.11, obssdk version:2.2.12
operating system:linux, arch:amd64
修改 /etc/hosts
sudo vim /etc/hosts
增加2行
100.xxx.xx.xxx obs.randy.sesame
100.xxx.xx.xxx randy.obs.randy.sesame # randy 为桶名
设置 AK/SK/Endpoint
OBS通过用户帐号中的AK和SK进行签名验证,确保通过授权的帐号才能访问指定的OBS资源。以下是对AK和SK的解释说明:
- Access Key Id(AK):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。
- Secret Access Key(SK):与访问密钥ID结合使用的私有访问密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。
./obsutil config -i=ak -k=sk -e=endpoint
./obsutil config -i=randyNUATN -k=randyITzwtQO9 -e=obs.randy.sesame
说明:
- 以上命令运行后,会在运行obsutil命令的用户目录(macOS/Linux操作系统的“~”目录;Windows操作系统的“C:\Users<username>”目录。)下自动生成一个名为.obsutilconfig的配置文件,它包含了obsutil的所有配置信息。
- .obsutilconfig的配置文件中的详细配置参数说明请参见配置参数说明。
查看桶名
./obsutil ls -s
Start at 2023-05-24 07:45:49.547411872 +0000 UTC
obs://randy
...
Bucket number: 27
查看桶内文件
./obsutil ls obs://桶名 -s
(base) randy@SanJieJiYuan:~/obsutil_linux_amd64_5.4.11$ ./obsutil ls obs://randy -s
Start at 2023-05-24 08:36:18.538975829 +0000 UTC
Listing objects .
Folder list:
obs://randy/qcj/
Object list:
obs://randy/qcj/bookmarks_2023_2_6.html
Total size of bucket is: 104.54KB
Folder number: 1
File number: 1
通过 ./obsutil config -interactive 方式设置配置文件问题
参数 | 约束 | 描述 |
---|---|---|
ak | 必选 | 永久或者临时访问密钥中的AK。 |
sk | 必选 | 永久或者临时访问密钥中的SK。 |
endpoint | 必选 | 连接OBS的服务地址。可包含协议类型、域名、端口号(可选)。示例:https://your-endpoint:80。(出于安全性考虑,建议使用https协议)例如,访问区域为中国-香港,则实际的OBS服务地址为:https://obs.ap-southeast-1.myhuaweicloud.com。**说明:**您可以从这里查看OBS当前开通的服务地址和区域信息。 |
token | 可选 | 临时访问密钥中的securitytoken。当使用临时访问密钥,该参数必选,否则置空即可。 |
(base) randy@SanJieJiYuan:~/obsutil_linux_amd64_5.4.11$ ./obsutil config -interactive
Please input your ak:
randyNUATN
Please input your sk:
randyITzwtQO9
Please input your endpoint:
http://obs.randy.sesame
Please input your token:
obs.randy.sesame
Config file url:
/home/randy/.obsutilconfig
Update config file successfully!
设置好了之后,查看桶名./obsutil ls -s
会报错
(base) randy@SanJieJiYuan:~/obsutil_linux_amd64_5.4.11$ ./obsutil ls -s
Start at 2023-05-24 06:08:11.181147724 +0000 UTC
List buckets failed, status [403], error code [InvalidAccessKeyId], error message [The Access Key Id you provided does not exist in our records.], request id [000001884C5F448F98A5A08639C097C1]
还是得通过下面方式设置
./obsutil config -i=ak序列号 -k=sk序列号 -e=obs.randy.sesame
前提是将已经设置过的 /home/randy/.obsutilconfig
文件删除rm ~/.obsutilconfig
,否则不生效
obsutil 命令行
./obsutil help
Usage: obsutil [command] [args...] [options...]
You can use "obsutil help command" to view the specific help of each command
Basic commands:
abort cloud_url [options...]
abort multipart uploads
bucketpolicy cloud_url [options...]
cat cloud_url
view the content of a text object in a bucket
chattri cloud_url [options...]
set bucket or object properties
cp file_url cloud_url [options...]
cloud_url file_url [options...]
cloud_url cloud_url [options...]
upload, download or copy objects
create-share cloud_url [options...]
create authorization code for sharing
download resource_url file_url [options...]
download an object directly using the specified resource url
ls [cloud_url] [options...]
list buckets or objects/multipart uploads in a bucket
mb cloud_url [options...]
create a bucket with the specified parameters
mkdir cloud_url|folder_url
create folder(s) in a specified bucket or in the local file system
mv cloud_url cloud_url [options...]
move objects
restore cloud_url [options...]
restore objects in a bucket to be readable
rm cloud_url [options...]
delete a bucket or objects in a bucket
share-cp authorization_code file_url [options...]
download objects using authorization code and access code
share-ls authorization_code [options...]
list objects using authorization code and access code
sign cloud_url [options...]
generate the download url(s) for the objects in a specified bucket
stat cloud_url
show the properties of a bucket or an object
sync file_url cloud_url [options...]
cloud_url file_url [options...]
cloud_url cloud_url [options...]
synchronize objects from the source to the destination
update cloud_url [options...]
update obsutil
Other commands:
archive [archive_url]
archive log files to local file system or OBS
clear [checkpoint_dir] [options...]
delete part records
config [options...]
update the configuration file
hash file_url [options...]
caculate the md5 or crc64 hash code of a local file
help [command]
view command help information
version
show version
快速使用
以Linux操作系统为例,介绍如何通过obsutil在OBS上完成基本的数据存取操作,具体操作流程如图1所示。
图1 obsutil快速使用流程
操作步骤
操作桶
-
运行
./obsutil mb obs://bucket-randy
命令,创建一个名为bucket-randy的新桶。语法:
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 运行当前命令时的自定义配置文件
./obsutil mb obs://bucket-randy -location=ap-southeast-1
Create bucket [bucket-randy] successfully!
说明:
以上命令中location参数定义了桶将会被创建在哪个区域,如果初始化配置时配置的终端节点(Endpoint)归属于默认区域华北-北京一(cn-north-1),可以不携带此参数;如果使用的终端节点归属于其他区域,则必须携带此参数。当前有效的区域名称可从这里查询。
- 运行**./obsutil rm obs://bucket-randy -f**命令,删除bucket-randy桶。
./obsutil rm obs://bucket-randy -f
Delete bucket [bucket-randy] successfully!
- 查询桶属性
./obsutil stat obs://bucket/key [-acl][-bf=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
./obsutil stat obs://randy
Start at 2023-05-24 09:25:40.951658236 +0000 UTC
Bucket:
obs://randy
StorageClass:
standard
Location:
cn-randy
ObsVersion:
3.0
BucketType:
OBJECT
上传文件
上传单个或多个本地文件或文件夹至OBS指定路径。待上传的文件可以是任何类型:文本文件、图片、视频等等。
上传本地文件或文件夹时,请确保本地文件或文件夹在上传过程不发生变化,否则可能产生上传失败或者数据不一致的问题。
约束与限制
obsutil对上传的文件或文件夹有大小限制,最小可以上传0Byte的空文件或文件夹,最大可以上传5GB(未采用分段上传)或48.8TB(采用分段上传)的单个文件。
-
上传文件
./obsutil cp file_url obs://bucket[/key] [-arcDir=xxx] [-dryRun] [-link] [-u] [-vlength] [-vmd5] [-p=1] [-threshold=5248800] [-acl=xxx] [-sc=xxx] [-meta=aaa:bbb#ccc:ddd] [-ps=auto] [-o=xxx] [-cpd=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
-
上传文件夹
./obsutil cp folder_url obs://bucket[/key] -r [-arcDir=xxx] [-dryRun] [-link] [-f] [-flat] [-u] [-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]
-
多文件/文件夹上传
./obsutil cp file1_url,folder1_url|filelist_url obs://bucket[/prefix] -msm=1 [-r] [-arcDir=xxx] [-dryRun] [-link] [-f] [-u] [-vlength] [-vmd5] [-flat] [-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]
参数说明
参数 | 约束 | 描述 |
---|---|---|
file_url | 多文件/文件夹上传时可选上传文件时必选 | 本地文件路径。**说明:**多文件/文件夹上传时,禁止路径嵌套,例如:/a/b/c和/a/b/。多文件/文件夹上传时,必须配置msm=1,此时可以用英文逗号分隔多个文件,例如:file_url1,file_url2。多文件/文件夹上传时,文件和文件夹可以同时存在,例如:file_url1,folder_url1,file_url2,folder_url2。 |
folder_url | 多文件/文件夹上传时可选上传文件夹时必选 | 本地文件夹路径。**说明:**上传文件夹时,若未设置flat选项,则直接上传整个文件夹;若设置了flat选项,则上传文件夹下的所有内容。多文件/文件夹上传时,禁止路径嵌套,例如:/a/b/c和/a/b/。多文件/文件夹上传时,必须配置msm=1,此时可以用逗号分隔多个文件夹,例如:folder_url1,folder_url2。多文件/文件夹上传时,文件和文件夹可以同时存在,例如:file_url1,folder_url1,file_url2,folder_url2。 |
filelist_url | 多文件/文件夹上传时可选 | 包含待上传文件/文件夹列表的文件,必须配置msm=2。**说明:**该文件为普通文本文件(如.txt文件、.csv文件),文件中的每行代表一个待上传的文件/文件夹,例如:file_url1file_url2folder_url1folder_url2文件中待上传的文件/文件夹禁止路径嵌套,例如:/a/b/c和/a/b/。 |
bucket | 必选 | 桶名。 |
key | 可选 | 上传文件时的对象名/对象名前缀,或上传文件夹时的对象名前缀。规则如下:上传文件时,如果该值为空,则将对象上传到桶的根目录,对象名为文件名。如果该值不为空,若该值以“/”结尾,则以该值作为对象名前缀上传对象,对象名为该值+文件名;否则,将该值作为对象名进行上传;上传文件夹时,如果该值为空,则将文件夹上传到桶的根目录;如果该值不为空,若该值以“/”结尾,则将该值作为对象名前缀上传文件夹;否则,将文件夹上传到以该值加上“/”结尾的对象名前缀下。**说明:**请参考上传示例理解该参数的使用方式。 |
fr | 附加参数,上传文件时可选 | 上传文件时生成结果清单文件。 |
flat | 附加参数,多文件/文件夹上传或上传文件夹时可选 | 上传文件夹时,只上传该文件夹下的所有内容。 |
arcDir | 附加参数,可选 | 上传文件成功后的归档路径,上传成功后的文件会移动到该路径下。 |
dryRun | 附加参数,可选 | 测试模式运行,不执行实际的上传操作。 |
link | 附加参数,可选 | 上传软链接文件/文件夹指向的真实路径。**须知:**如果未指定该参数,而待上传的文件是一个软链接且该软链接指向的目标文件不存在,则Windows操作系统会产生“The system cannot find the file specified”的上传失败异常,而macOS/Linux操作系统会产生“No such file or directory”的上传失败异常。文件夹软链接不能形成环,否则上传会以panic的形式退出;如果不希望产生panic,请在配置文件中配置panicForSymbolicLinkCircle为false。 |
u | 附加参数,可选 | 增量上传操作,设置该参数后,上传每个文件时会对比桶中对应路径的对象,仅在对象不存在,或者对象大小与文件大小不一致,或者对象的最后修改时间早于文件的最后修改时间时进行上传。**注意:**在比较每个本地文件与桶内对象差异时,会产生一次HEAD请求费用。 |
vlength | 附加参数,可选 | 上传完成后,验证桶中对象的大小是否与本地文件大小一致。 |
vmd5 | 附加参数,可选 | 上传完成后,验证桶中对象的MD5值是否与本地文件的MD5值一致。**说明:**如果待上传的本地文件较大,使用该参数将会因为计算MD5而导致整体性能下降。MD5值校验通过后,会将该值设置为对象元数据x-obs-meta-md5chksum,用于下载或复制时校验MD5。 |
p | 附加参数,可选 | 每个分段上传任务的最大并发数,默认为配置文件中的defaultParallels。 |
threshold | 附加参数,可选 | 开启分段上传任务的阈值,单位:字节,默认为配置文件中的defaultBigfileThreshold。**说明:**如果待上传的文件小于该阈值,则使用直接上传模式;否则使用分段上传模式。直接上传模式不会产生断点记录文件,不支持断点续传。支持带容量单位配置,例如,配置1MB代表1048576字节。 |
acl | 附加参数,可选 | 上传文件时可指定的预定义访问策略。支持的值:privatepublic-readpublic-read-writebucket-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子文件夹下,分段任务执行成功后,对应的断点记录文件会被自动删除;分段任务执行失败或被中断后,下次执行该分段任务时会尝试通过对应的断点记录文件恢复任务。 |
r | 附加参数,上传文件夹时必选多文件上传时可选 | 递归上传文件夹中的所有文件和子文件夹。 |
f | 附加参数,多文件/文件夹上传或上传文件夹时可选 | 强制操作,不进行询问提示。 |
j | 附加参数,多文件/文件夹上传或上传文件夹时可选 | 上传文件夹时批量任务的最大并发数,默认为配置文件中的defaultJobs。**说明:**工具会保证该值至少为1。 |
msm | 附加参数,多文件/文件夹上传时必选 | 开启多文件/文件夹上传模式,支持的值:[1|2]。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1AM8SmfD-1685117776129)(https://res-static.hc-cdn.cn/aem/content/dam/cloudbu-site/archive/hk/en-us/support/resource/framework/v3/images/support-doc-en-note.png “1|2]。![img”)]**说明:**如果msm=1则代表上传的URL是一组文件/文件夹列表(以英文逗号分隔)。如果该值为msm=2则代表上传的URL是一个包含文件/文件夹列表的文件。如果文件/文件夹名本身包含英文逗号,请不要使用msm=1的模式。如果没有设置r参数,则列表中的文件夹不会被上传。 |
exclude | 附加参数,多文件/文件夹上传或上传文件夹时可选 | 不包含文件的匹配模式,如:.txt。**说明:**支持“”匹配多个任意字符和“?”匹配单个任意字符,例如abc*.txt代表匹配以abc开头以.txt结尾的任意文件。您可以使用“*”代表匹配“”字符本身,使用“?”代表匹配“?”字符本身。如果待上传的文件名匹配该参数,则跳过该文件的上传。**须知:**建议使用引号传递该匹配模式(Linux/Mac操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。该匹配模式作用于文件全路径(含文件名和文件目录)。该匹配模式仅对文件夹中的文件生效。支持指定多个exclude参数,如 -exclude=.xxx -exclude=*.xxx |
include | 附加参数,多文件/文件夹上传或上传文件夹时可选 | 包含文件的匹配模式,如:.jpg。**说明:**支持“”匹配多个任意字符和“?”匹配单个任意字符。您可以使用“*”代表匹配“”字符本身,使用“?”代表匹配“?”字符本身。首先执行exclude的匹配规则,如果待上传的文件名不匹配exclude,则判断待上传的文件名是否匹配该参数,如果匹配则上传该文件,否则跳过该文件的上传。**须知:**建议使用引号传递该匹配模式(Linux/Mac操作系统使用单引号,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。**说明:**结果清单文件命名规则:cp_{succeed | failed | warning}_report_时间_TaskId.txt。单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024,可在配置文件中通过recordMaxLogSize和recordBackups分别配置。当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件"cp_failed_report_时间_TaskId.txt"及日志路径下的日志文件; |
config | 附加参数,可选 | 运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 |
e | 附加参数,可选 | 指定终端节点。 |
i | 附加参数,可选 | 指定用户的AK。 |
k | 附加参数,可选 | 指定用户的SK。 |
t | 附加参数,可选 | 指定用户的securitytoken。 |
- 运行
./obsutil cp obsutil obs://randy/
命令,将本地obsutil文件上传至randy桶中。
(base) randy@SanJieJiYuan:~/obsutil_linux_amd64_5.4.11$ ./obsutil cp obsutil obs://randy/
Start at 2023-05-24 08:40:56.552134042 +0000 UTC
Parallel: 5 Jobs: 5
Threshold: 50.00MB PartSize: auto
VerifyLength: false VerifyMd5: false
CheckpointDir: /home/randy/.obsutil_checkpoint
[--------------------------------------] 100.00% 187.24MB/s 8.99MB/8.99MB 249ms
Upload successfully, 8.99MB, n/a, /home/randy/obsutil_linux_amd64_5.4.11/obsutil --> obs://randy/obsutil, cost [249], status [200], request id [000001884CEB1C40818612A9DCB0B30F]
- 运行
./obsutil cp obs://randy/obsutil ~/Downloads/obsutil-randy
命令,将randy桶中的obsutil对象下载至本地。
(base) randy@SanJieJiYuan:~/obsutil_linux_amd64_5.4.11$ ./obsutil cp obs://randy/obsutil ~/Downloads/obsutil-randy
Start at 2023-05-24 09:07:50.365834539 +0000 UTC
Parallel: 5 Jobs: 5
Threshold: 50.00MB PartSize: auto
VerifyLength: false VerifyMd5: false
CheckpointDir: /home/randy/.obsutil_checkpoint
TempFileDir: /home/randy/obsutil_linux_amd64_5.4.11
[--------------------------------------] 100.00% 272.35MB/s 8.99MB/8.99MB 235ms
Download successfully, 8.99MB, n/a, obs://randy/obsutil --> /home/randy/Downloads/obsutil-randy, cost [235], status [200], request id [000001884D03BC55818666DDB2CED844]
(base) randy@SanJieJiYuan:~/obsutil_linux_amd64_5.4.11$ ll ~/Downloads/obsutil-randy
-rw-rw-r-- 1 qiancj qiancj 9424184 5月 24 17:07 /home/randy/Downloads/obsutil-randy
更多上传示例
假设本地文件夹的格式如下:
└── src1
├── src2
├── randy1.txt
└── randy2.txt
├── src3
└── randy3.txt
基于以上文件夹格式,不同上传场景的命令示例如下:
-
上传本地src1文件夹下的 randy3.txt文件至bucket-randy桶的根目录,命令如下:
./obsutil cp /src1/randy3.txt obs://bucket-randy
成功上传后,桶内生成对象为:
./obs://bucket-randy/randy3.txt
-
上传本地src1文件夹下的 randy3.txt文件至bucket-randy桶的根目录,并且重命名为aaa.txt,命令如下:
./obsutil cp /src1/randy3.txt obs://bucket-randy/aaa.txt
成功上传后,桶内生成对象为:
./obs://bucket-randy/aaa.txt
-
上传本地src1文件夹下的 randy3.txt文件至bucket-randy桶的src文件夹中,命令如下:
./obsutil cp /src1/randy3.txt obs://bucket-randy/src/
成功上传后,桶内生成对象为:
./obs://bucket-randy/src/randy3.txt
-
递归上传本地src2文件夹中的所有文件(包括src2文件夹本身)至bucket-randy桶的根目录,且上传过程中不进行询问操作,命令如下:
./obsutil cp /src1/src2 obs://bucket-randy -r -f
成功上传后,桶内生成对象为:
obs://bucket-randy/src2/ obs://bucket-randy/src2/randy1.txt obs://bucket-randy/src2/randy2.txt
-
递归上传本地src1文件夹中的所有文件和文件夹(包括src1文件夹本身)至bucket-randy桶的src文件夹下,且上传过程中不进行询问操作,命令如下:
./obsutil cp /src1 obs://bucket-randy/src -r -f
成功上传后,桶内生成对象为:
obs://bucket-randy/src/src1/ obs://bucket-randy/src/src1/src2/ obs://bucket-randy/src/src1/src2/randy1.txt obs://bucket-randy/src/src1/src2/randy2.txt obs://bucket-randy/src/src1/src3/ obs://bucket-randy/src/src1/randy3.txt
-
递归上传本地src1文件夹中的所有文件和文件夹(不包括src1文件夹本身)至bucket-randy桶的src文件夹下,且上传过程中不进行询问操作,命令如下:
./obsutil cp /src1 obs://bucket-randy/src -r -f -flat
成功上传后,桶内生成对象为:
obs://bucket-randy/src/ obs://bucket-randy/src/src2/ obs://bucket-randy/src/src2/randy1.txt obs://bucket-randy/src/src2/randy2.txt obs://bucket-randy/src/src3/ obs://bucket-randy/src/randy3.txt
-
上传本地file1文件至bucket-randy桶下,且上传过程中失败,断点续传,命令如下:
./obsutil cp /file1 obs://bucket-randy/file -f
上传失败。结果如下:
./obsutil cp /file1 obs://bucket-randy/file -f Parallel: 3 Jobs: 3 Threshold: 524288000 PartSize: 5242880 Exclude: Include: VerifyLength: false VerifyMd5: false CheckpointDir: xxxx [=================================__________________] 66.08% ?/s 3.35GB/4.88GB ?
再次执行同上命令断点续传。结果如下:
obsutil cp /file1 obs://bucket-randy/file -f
Parallel: 3 Jobs: 3 Threshold: 524288000 PartSize: 5242880 Exclude: Include: VerifyLength: false VerifyMd5: false CheckpointDir: xxxx [====================================================] 100% 307.42MB/s 4.88GB/4.88GB 5.308s Upload successfully, 4.88GB, n/a, /file1 --> obs://bucket-randy/file, cost [6325], status [200], request id [xxxxx]
-
增量上传本地src1文件夹下的所有文件和文件夹至bucket-randy桶的src目录,命令如下:
./obsutil cp /src1 obs://bucket-randy/src -f -r -u
上传成功4个对象,1个为新增对象,执行结果出现Skip count字样。
./obsutil cp /src1 obs://bucket-randy/src -f -r -u
Parallel: 3 Jobs: 3 Threshold: 524288000 PartSize: 5242880 Exclude: Include: VerifyLength: false VerifyMd5: false CheckpointDir: xxxx [====================================================] 100% tps:0.00 ?/s 2.09KB/2.09KB 5ms Succeed count is: 4 Failed count is: 0 Skip count is: 3 Succeed bytes is: 2.09KB Metrics [max cost:6 ms, min cost:6 ms, average cost:1.50 ms, average tps:52.63, uploaded size :2.09KB]
-
排除上传本地src1文件夹中src2及其包含的所有文件和文件夹,命令如下:
./obsutil cp /src1 obs://bucket-randy/src -exclude "*src1/src2*" -f -r -mf
上传成功5个对象,上传信息中包含Exclude及内容字样。
./obsutil cp /src1 obs://bucket-randy/src -exclude "*src1/src2*" -f -r -mf Parallel: 5 Jobs: 5 Threshold: 50.00MB PartSize: auto VerifyLength: false VerifyMd5: false Exclude: *src1/src2* Include: CheckpointDir: xxxx OutputDir: xxxx [====================================================] 100.00% tps:35.82 ?/s 5/5 2.39KB/2.39KB 340ms Succeed count is: 3 Failed count is: 0 Succeed bytes is: 2.39KB Metrics [max cost:338 ms, min cost:91 ms, average cost:240.40 ms, average tps:14.62, transfered size:2.39KB]
成功上传后,桶内生成对象为:
obs://bucket-randy/src/src1/ obs://bucket-randy/src/src1/src3/ obs://bucket-randy/src/src1/randy3.txt
说明:
断点续传仅支持大文件,即:文件大小大于5GB或文件大小大于设置的threshold(默认50MB)。
删除
- 运行
./obsutil rm obs://randy/obsutil -f
命令,在randy桶中删除obsutil对象。
(base) randy@SanJieJiYuan:~/obsutil_linux_amd64_5.4.11$ ./obsutil rm obs://randy/obsutil -f
Start at 2023-05-24 09:08:54.11499125 +0000 UTC
Delete object [obsutil] in the bucket [randy] successfully, cost [245], request id [000001884D04B4D58184861D1F60BF0E]
下载对象
-
下载单个对象
./obsutil cp obs://bucket/key file_or_folder_url [-tempFileDir=xxx] [-dryRun] [-u] [-vlength] [-vmd5] [-p=1] [-threshold=52428800] [-versionId=xxx] [-ps=auto] [-cpd=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
-
批量下载对象
./obsutil cp obs://bucket[/key] folder_url -r [-tempFileDir=xxx] [-dryRun] [-f] [-flat] [-u] [-vlength] [-vmd5] [-j=1] [-p=1] [-threshold=52428800] [-ps=auto] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-mf] [-o=xxx] [-cpd=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
Reference
- 下载和安装obsutil
- obsutil简介
- 图解对象存储服务
- SDK概述