华为云安装与使用

news2024/11/25 9:31:46

华为云安装与使用

文章目录

  • 华为云安装与使用
    • 下载地址
    • 修改 /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操作系统

  1. 在浏览器中打开表格中对应的下载地址将obsutil工具下载至本地。
  2. 下载完成后,将其解压至指定文件夹。
  3. 在解压后的文件夹中双击运行obsutil.exe即可开始使用。

输入账号名、AK、SK等值即可登录。

Linux操作系统

  1. 打开命令行终端,执行wget 命令下载obsutil工具。
   wget https://obs-community-intl.obs.ap-southeast-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz
  1. 在软件包所在目录,执行以下解压命令。
tar -xzvf obsutil_linux_amd64.tar.gz
  1. 进入obsutil所在目录,执行以下命令,为obsutil增加可执行权限。
chmod 755 obsutil
  1. 继续在目录中执行以下命令,如果能顺利返回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。img**说明:**您可以从这里查看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快速使用流程

操作步骤

操作桶

  1. 运行./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),可以不携带此参数;如果使用的终端节点归属于其他区域,则必须携带此参数。当前有效的区域名称可从这里查询。

  1. 运行**./obsutil rm obs://bucket-randy -f**命令,删除bucket-randy桶。
   ./obsutil rm obs://bucket-randy -f
   
   Delete bucket [bucket-randy] successfully!
  1. 查询桶属性
./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多文件/文件夹上传时可选上传文件时必选本地文件路径。img**说明:**多文件/文件夹上传时,禁止路径嵌套,例如:/a/b/c和/a/b/。多文件/文件夹上传时,必须配置msm=1,此时可以用英文逗号分隔多个文件,例如:file_url1,file_url2。多文件/文件夹上传时,文件和文件夹可以同时存在,例如:file_url1,folder_url1,file_url2,folder_url2。
folder_url多文件/文件夹上传时可选上传文件夹时必选本地文件夹路径。img**说明:**上传文件夹时,若未设置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。img**说明:**该文件为普通文本文件(如.txt文件、.csv文件),文件中的每行代表一个待上传的文件/文件夹,例如:file_url1file_url2folder_url1folder_url2文件中待上传的文件/文件夹禁止路径嵌套,例如:/a/b/c和/a/b/。
bucket必选桶名。
key可选上传文件时的对象名/对象名前缀,或上传文件夹时的对象名前缀。规则如下:上传文件时,如果该值为空,则将对象上传到桶的根目录,对象名为文件名。如果该值不为空,若该值以“/”结尾,则以该值作为对象名前缀上传对象,对象名为该值+文件名;否则,将该值作为对象名进行上传;上传文件夹时,如果该值为空,则将文件夹上传到桶的根目录;如果该值不为空,若该值以“/”结尾,则将该值作为对象名前缀上传文件夹;否则,将文件夹上传到以该值加上“/”结尾的对象名前缀下。img**说明:**请参考上传示例理解该参数的使用方式。
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值一致。img**说明:**如果待上传的本地文件较大,使用该参数将会因为计算MD5而导致整体性能下降。MD5值校验通过后,会将该值设置为对象元数据x-obs-meta-md5chksum,用于下载或复制时校验MD5。
p附加参数,可选每个分段上传任务的最大并发数,默认为配置文件中的defaultParallels。
threshold附加参数,可选开启分段上传任务的阈值,单位:字节,默认为配置文件中的defaultBigfileThreshold。img**说明:**如果待上传的文件小于该阈值,则使用直接上传模式;否则使用分段上传模式。直接上传模式不会产生断点记录文件,不支持断点续传。支持带容量单位配置,例如,配置1MB代表1048576字节。
acl附加参数,可选上传文件时可指定的预定义访问策略。支持的值:privatepublic-readpublic-read-writebucket-owner-full-controlimg**说明:**以上四个值分别对应:私有读写、公共读、公共读写、桶拥有者完全控制,四种预定义访问策略。
sc附加参数,可选上传文件时可指定的对象的存储类型。支持的值:standard:标准存储,访问时延低、吞吐量高,适用于有大量热点文件(平均一个月多次)或小文件(小于1MB)。warm:低频访问存储,可用性略低于standard,适用于不频繁访问(平均一年少于12次)但在需要时也要求快速访问数据的业务场景。cold:归档存储,安全、持久且成本极低,适用于很少访问(平均一年访问一次)数据的业务场景。
meta附加参数,可选上传文件时可指定的自定义元数据。格式为:key1:value1#key2:value2#key3:value3。img**说明:**以上值表示上传文件完成后,桶内对象包含三组自定义元数据,分别为:key1:value1、key2:value2、key3:value3。
ps附加参数,可选每个分段上传任务的段大小,单位:字节,取值范围是100KB~5GB,默认为配置文件中的defaultPartSize。img**说明:**支持带容量单位配置,例如,配置1MB代表1048576字节。支持配置为auto,此时obsutil会根据源文件大小自动设置每个分段任务的段大小。
cpd附加参数,可选生成断点记录文件的文件夹,默认为运行obsutil命令的用户目录的子文件夹.obsutil_checkpoint。img**说明:**每个分段上传任务会产生唯一对应的断点记录文件并保存至该文件夹的upload子文件夹下,分段任务执行成功后,对应的断点记录文件会被自动删除;分段任务执行失败或被中断后,下次执行该分段任务时会尝试通过对应的断点记录文件恢复任务。
r附加参数,上传文件夹时必选多文件上传时可选递归上传文件夹中的所有文件和子文件夹。
f附加参数,多文件/文件夹上传或上传文件夹时可选强制操作,不进行询问提示。
j附加参数,多文件/文件夹上传或上传文件夹时可选上传文件夹时批量任务的最大并发数,默认为配置文件中的defaultJobs。img**说明:**工具会保证该值至少为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。img**说明:**支持“”匹配多个任意字符和“?”匹配单个任意字符,例如abc*.txt代表匹配以abc开头以.txt结尾的任意文件。您可以使用“*”代表匹配“”字符本身,使用“?”代表匹配“?”字符本身。如果待上传的文件名匹配该参数,则跳过该文件的上传。**须知:**建议使用引号传递该匹配模式(Linux/Mac操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。该匹配模式作用于文件全路径(含文件名和文件目录)。该匹配模式仅对文件夹中的文件生效。支持指定多个exclude参数,如 -exclude=.xxx -exclude=*.xxx
include附加参数,多文件/文件夹上传或上传文件夹时可选包含文件的匹配模式,如:.jpg。img**说明:**支持“”匹配多个任意字符和“?”匹配单个任意字符。您可以使用“*”代表匹配“”字符本身,使用“?”代表匹配“?”字符本身。首先执行exclude的匹配规则,如果待上传的文件名不匹配exclude,则判断待上传的文件名是否匹配该参数,如果匹配则上传该文件,否则跳过该文件的上传。**须知:**建议使用引号传递该匹配模式(Linux/Mac操作系统使用单引号,Windows操作系统使用双引号)防止特殊符号被操作系统转义,导致不可预期的结果。该匹配模式作用于文件全路径(含文件名和文件目录)。该匹配模式仅对文件夹中的文件生效。支持指定多个include参数,如 -include=.xxx -include=*.xxx
at附加参数,多文件/文件夹上传或上传文件夹时可选指定按照文件最后访问时间作为timeRange匹配模式,仅上传最后访问时间满足timeRange时间段的文件。img**说明:**需配合timeRange使用
disableDirObject附加参数,多文件夹上传时可选上传文件夹时候,文件夹本身不会作为一个对象上传,在有很多空文件夹场景时候可以避免无用文件夹上传到对象存储桶中;文件夹下有文件时候,文件夹下文件依然会上传并保持原有路径格式,不受影响。
timeRange附加参数,多文件/文件夹上传或上传文件夹时可选上传文件时的时间段匹配模式,仅上传最后修改时间在该时间段内的文件。该匹配模式优先级低于文件名匹配模式:exclude和include,优先执行文件名匹配模式后才会执行该匹配模式。img**说明:**使用“time1-time2”,代表匹配的时间段,其中time1必须小于等于time2,格式为yyyyMMddHHmmss。时间格式支持自动补全,例如yyyyMMdd等价于yyyyMMdd000000,yyyyMM等价于yyyyMM01000000。使用“-time2”,代表匹配最后修改时间在time2之前的所有文件,使用“time1-”,代表匹配最后修改时间time1之后的所有文件。**须知:**该匹配模式表示的时间是UTC时间。
mf附加参数,可选设置名称匹配模式(include、exclude)和时间匹配模式(timeRange)对文件夹也生效。
o附加参数,可选生成结果清单文件的文件夹,命令执行完成后,会在该文件夹下生成结果清单文件(可能包含成功结果、失败结果、警告结果三个文件),默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。img**说明:**结果清单文件命名规则:cp_{succeed | failed | warning}_report_时间_TaskId.txt。单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024,可在配置文件中通过recordMaxLogSize和recordBackups分别配置。当涉及多文件/文件夹时,如需确认失败任务的具体错误信息,可参考结果清单文件夹下的失败结果清单文件"cp_failed_report_时间_TaskId.txt"及日志路径下的日志文件;
config附加参数,可选运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。
e附加参数,可选指定终端节点。
i附加参数,可选指定用户的AK。
k附加参数,可选指定用户的SK。
t附加参数,可选指定用户的securitytoken。

  1. 运行./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]
  1. 运行./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 524 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)。


删除

  1. 运行./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概述

欢迎关注公众号【三戒纪元】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/574581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库基础——2.MySQL的卸载安装及相关环境的配置

这篇文章我们来说一下MySQL的下载、安装、相关环境配置、可能遇见的问题及其解决方案、卸载等操作。 目录 1.查看已安装的 1.1 命令提示窗口下查看 1.2 文件目录下查看 2.Mysql的卸载 2.1卸载mysql 2.2 清理其他文件 3.MySQL的下载 3.1 介绍 3.2 软件下载 3.3 软件安…

python求解一阶线性偏微分方程通解举例

python求解一阶线性偏微分方程的通解举例 Python求解偏微分方程也是其一个应用方面&#xff0c;下面举例说明。 一、问题&#xff1a; 求一阶线性偏微分方程 x ∂ f ( x , y ) ∂ x − y ∂ f ( x , y ) ∂ y y 2 f ( x , y ) y 2 x\frac{{\partial f(x,y)}}{{\partial x}…

海康线扫相机平场校正/阴影校正教程

机器视觉海康visionmaster-字符快速识别,字符缺陷检测 为什么要对线阵相机进行平场矫正(PRNUC) 线阵相机需要平场矫正(PRNUC)主要是因为获取得图像有异常,如图像边缘亮度与中心亮度不一致情况等, 对于现场使用相机获取图像数据有较大影响,故而需要对线阵相机进行平场矫…

Linux网络服务:PXE高效批量网络装机

目录 一、理论 1.PXE批量网络装机概述 2.搭建 PXE 远程安装服务器 3.实现Kickstart无人值守安装 二、实验 1.搭建PXE远程安装服务器 2.安装Kickstart无人值守安装 3.安装图形化界面 三、问题 1.please complete all spokes before continuing 提示 一、理论 1.PXE批…

【Python】列表和字典

知识目录 一、写在前面✨二、列表应用三、字典应用四、总结撒花&#x1f60a; 一、写在前面✨ 大家好&#xff01;我是初心&#xff0c;希望我们一路走来能坚守初心&#xff01; 今天跟大家分享的文章是 Python函数式编程第二弹&#xff0c;再次以两个简单的例子带大家更好的…

Hbase高可用集群的搭建

高可用基于zookeeper zookeeper安装教程&#xff1a;集群上Zookeeper服务的搭建_EEEurekaaa&#xff01;的博客-CSDN博客 1.下载安装包 推荐去国内源进行安装 Index of /apache/hbase 下载版本时&#xff0c;注意hbase与Hadoop的版本对应关系 2.上传服务器并解压 4.配置环…

【ISO14229_UDS刷写】-2-$35诊断服务RequestUpload理论部分

总目录&#xff1a;&#xff08;单击下方链接皆可跳转至专栏总目录&#xff09; 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014 目录 1 $0x35 RequestUpload诊断服务描述 2 0x35服务请求消息 2.1 0x35服务请求消息定义 2.2 …

2022中国大学生程序设计竞赛(CCPC)高职专场

一&#xff0c;期望 题意&#xff1a; 初始时你有1−n这n个正整数和一个空的序列&#xff0c;你准备玩一个往序列中加数字的无聊游戏。游戏进行n轮,在游戏的每一轮中你要向序列尾部加入一个还未被加入的数&#xff0c;最终的序列将会是一个长度为n的排列。在某一轮游戏开始前…

五、Docker仓库之https的registry搭建(二)

本节我们分享更多的实用的仓库搭建使用方式。包括支持https的registry、Harbor、nexus。 支持HTTPS的registry 准备站点证书&#xff08;测试使用&#xff0c;用一个自己的测试域名&#xff0c;配置本地hosts&#xff09; 如果你拥有一个公网域名&#xff0c;那很好&#xff…

ESP-01模块刷固件

ESP-01模块刷固件 0.前言一、准备二、烧写1.接线2.软件设置3.检验 0.前言 最近需要用esp-01模块作为wifi模块上云&#xff0c;但由于出厂自带固件太过老旧&#xff0c;经常会出现奇奇怪怪的警告&#xff0c;所以记录下如何给ESP-01刷写较新的固件。 一、准备 需要准备三个东西…

Python之并发编程一背景知识

一、开篇介绍 顾名思义&#xff0c;进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统&#xff0c;是操作系统最核心的概念&#xff0c;也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展…

大型软件外包开发管理工具

大型软件项目涉及人员多&#xff0c;软件代码量大&#xff0c;业务复杂&#xff0c;因此需要借助软件工程的管理工具进行管理&#xff0c;否则容易隐入混乱。今天和大家分享这些工具&#xff0c;这些工具比较实用&#xff0c;在实际工作中使用广泛&#xff0c;希望对大家有所帮…

Linux常规基础配置

通过VMware成功安装RHEL7服务器后&#xff0c;为了能够正常使用&#xff0c;需要对其进行常规的一些基础配置&#xff0c;主要有&#xff1a;关闭防火墙与selinux&#xff0c;设置主机名&#xff0c;配置虚拟机IP地址使其能够与外网ping通&#xff0c;配置IP地址与主机名映射&a…

从小白到大神之路之学习运维第29天

第二阶段基础 时 间&#xff1a;2023年5月25日 参加人&#xff1a;全班人员 内 容&#xff1a; Apache服务 目录 一、基本信息 二、安装方法 三、配置方法 四、虚拟主机头 1&#xff1a;基于不同的IP地址 2&#xff1a;基于不同的端口 3&#xff1a;基于不同的域…

SQL 教程(2)

SQL 函数 SQL 拥有很多可用于计数和计算的内建函数。 SQL Aggregate 函数 SQL Aggregate 函数计算从列中取得的值&#xff0c;返回一个单一的值。 有用的 Aggregate 函数&#xff1a; AVG() - 返回平均值COUNT() - 返回行数FIRST() - 返回第一个记录的值LAST() - 返回最后…

C++回调函数理解

C回调函数理解 0.引言1.回调函数的实现方式2.普通函数以函数指针的形式进行实现3.类成员函数以静态函数进行实现4.类成员函数以非静态函数进行实现5.std::funtion和std::bind的使用6.c回调的实现7.应用实例 0.引言 看了一些介绍感觉太官方了&#xff0c;我的简单理解就是从模式…

3D点云深度学习处理的基本概念

权重矩阵更新学习方法概述 参数初始化&#xff1a; 需要对权重矩阵初始化参数&#xff08;通常使用随机初始化方法&#xff0c;如正态分布或者均匀分布生成随机数&#xff09; 前向传播&#xff1a; 前向传播中&#xff0c;模型计算权重矩阵和输入数据的结果&#xff0c;得…

第1关:JDBC程序设计

第1关&#xff1a;JDBC程序设计 任务描述相关知识JDBC程序设计JDBC主要功能JDBC主要接口和函数JDBC应用程序开发实例编程要求代码参考 任务描述 本关任务&#xff1a;使用 JDBC 往表中插入数据。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1.JDBC 主要功…

SM3_CNC,轴组,G代码解析,CNC运动控制

硬件要求&#xff1a; 中型PLC&#xff08;汇川AM600&#xff0c;禾川HCQ0&#xff09;&#xff0c;且带 SM3_CNC.library 库&#xff08;3.5.6支持离线仿真&#xff09; G代码标准&#xff1a; DIN66025 DIN66025-1标准G0 运动定位 G1 线性插补 G2 顺圆插补 G3 …

决策树案例以及决策树可视化

一、案例背景 泰坦尼克号沉没是历史上最臭名昭著的沉船之一。1912年4月15日&#xff0c;在她的处女航中&#xff0c;泰坦尼克号在与冰山相撞后沉没&#xff0c;在2224名乘客和机组人员中造成1502人死亡。在这个案例中&#xff0c;我们要求完成对哪些人可能存活的分析。特别是&…