./ossutil64 config
请输入配置文件名,文件名可以带路径(默认为:/home/user/.ossutilconfig,回车将使用默认路径。
如果用户设置为其它路径,在使用命令时需要将--config-file选项设置为该路径):
未输入配置文件路径,将使用默认配置文件:/home/user/.ossutilconfig。
对于下述配置,回车将跳过相关配置项的设置,配置项的具体含义,请使用"help config"命令查看。
请输入endpoint:https:
请输入accessKeyID:yourAccessKeyID
请输入accessKeySecret:yourAccessKeySecret
请输入stsToken:yourStsToken
ossutil config -e oss-cn-beijing.aliyuncs.com -i LTAIbZcdVCmQ**** -k D26oqKBudxDRBg8Wuh2EWDBrM0**** -L CH -c /myconfig
如果您使用命令时输入了除-L language和-c,--config-file以外的任意选项,则进入非交互式模式,所有的配置项需使用选项来指定。
(二)输出文件内容cat
ossutil cat oss://bucketname/objectname [--payer <value>] [--version-id <value>]
bucketname
Bucket名称
objectname
Object名称
--payer
请求的支付方式。如果希望访问指定路径下的资源产生的流量、请求次数等费用由请求者支付,请将此选项的值设置为requester
--version-id
Object的指定版本。仅适用于已开启或暂停版本控制状态Bucket下的Object。
ossutil cat oss://examplebucket/test.txt
将未开启版本控制的目标存储空间examplebucket内名为test.txt的文件内容输出到屏幕
ossutil64 cat oss://examplebucket/exampleobject.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
将已开启版本控制的目标存储空间examplebucket内名为exampleobject.txt文件的指定版本内容输出到屏幕
(三)创建Bucket mb
Bucket可以理解成存储空间
oosutil mb oss://Bucket名称
oosutil mb oss://my-markdown
==以下将使用此路径为例==
b.下载文件名中包含abc
但不是JPG
和TXT
的文件--include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r
ossutil cp oss://my-markdown/ 本地路径 --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r
ossutil cp oss://my-markdown/ /User/UserName/Dektop/ --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r
下载my-markdown/
下所有名称中包含abc
但不是JPG
和TXT
的文件到/User/UserName/Dektop/
ossutil cp oss://my-markdown/test.txt /Users/UserName/Desktop/test/ --snapshot-path=/Users/UserName/Desktop/test/shot/
下载test.txt
文件到/Users/UserName/Desktop/test/
,同时把快照保存在/Users/UserName/Desktop/test/shot/
5. 在已开启版本控制的Bucket内下载指定版本文件--version-id
已开启版本控制
下载指定版本文件
开启版本控制
跳转到“查询文件的versionid”
来自“查询文件的versionid”的返回
ossutil64 cp -r oss://my-markdown/文件名 本地路径/ --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
ossutil64 cp -r oss://my-markdown/test.txt /Users/UserName/Desktop/test/ --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
下载test.txt
文件的CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
版本到/Users/UserName/Desktop/test/
目录下
当您需要通过命令行工具ossutil切换至另一个地域的Bucket时,可以通过-e
选项指定该Bucket所属的Endpoint
。当您需要通过命令行工具ossutil切换至另一个阿里云账号下的Bucket时,可以通过-i
选项指定该账号的AccessKey ID
,并通过-k
选项指定该账号的AccessKey Secret
。
[查询Endpoint]
[查询AccessKey ID]
[查询AccessKey Secret]
ossutil cp oss://markdown/test.txt 本地路径/ -e 指定的Endpoint -i AccessKey_ID -k AccessKey_Secret
./ossutil64 cp oss://examplebucket/exampleobject.txt localfolder/ -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
将另一个阿里云账号下,华东2(上海)地域下存储空间examplebucket根目录下的文件exampleobject.txt下载至本地目录localfolder下,
ossutil64 rm oss://examplebucket/exampleobject.txt
前缀匹配删除
./ossutil64 **rm** oss://examplebucket/test -r
后缀匹配删除
ossutil64 **rm** oss://examplebucket --include "*.png" -r
包含字符删除
ossutil64 **rm** oss://examplebucket --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r
删除置顶文件版本
ossutil64 **rm** oss://examplebucket/exampleobject.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
删除已开启版本控制的文件的所有版本。
ossutil64 rm oss://examplebucket/exampleobject.txt --all-versions
删除已开启版本控制的examplebucket下所有Object的所有版本
ossutil64 rm oss://examplebucket --all-versions -r
(八) 生成签名URL sign
1. 生成默认参数的URL
ossutil sign oss://mielgo-markdown/文件名
默认的超时时间为60
秒
ossutil sign oss://my-markdown/test.txt
对目标文件oss://my-markdown/test.txt
生成超时时间为60
秒的文件签名URL。(如果成功,系统将返回一个URL,任何人都可以使用这个链接下载你所生成URL的这个文件)
2. 指定超时时间
当前时间戳与签名URL的过期时间之和不能超过9223372036854775807
,否则会溢出报错。例如,当前时间戳为1643341269
,则签名URL过期时间最大不能超过9223372035211434538
。
Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
时间戳在线转换_1
时间戳在线转换_2
ossutil sign oss://my-markdown/test.txt --trafic-limit 838860800
对目标文件oss://my-markdown/test.txt
生成限定其访问速度为100MB/s的URL
4. 对文件的指定版本生成URL--version-id
ossutil sign oss://mielgo-markdown/文件名 --version-id id名称
ossutil sign oss://my-markdown/test.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
对目标文件oss://my-markdown/test.txt
的CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
版本生成URL
(九)创建目录mkdir
ossutil64 **mkdir** oss://bucketname/dirname [--encoding-type <value>]
dirname
创建的目录名称。目录名称须以正斜线(/)结尾。若未添加正斜线(/),ossutil会在目录末尾自动添加。
--encoding-type
对oss://bucket_name后面的key(目录名称)进行编码,取值为url。如果不指定该选项,则表示目录名称未经过编码。
创建单级目录
ossutil mkdir oss://examplebucket/dir/
创建多级目录
ossutil mkdir oss://examplebucket/Photo/2021/
如果误删除了2021/目录,且上一级目录Photo/下文件个数为0,则Photo/目录也会被自动移除。
(十)版本控制bucket-versioning
版本控制是针对存储空间(Bucket)级别的数据保护功能。开启版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。在对象(Object)被错误覆盖或者误删除后,您可以将Bucket中存储的Object恢复至任意时刻的历史版本。本文介绍通过bucket-versioning命令设置或获取版本控制状态。
默认情况下,Bucket版本控制状态为“未开启”。一旦Bucket开启了版本控制,将无法返回至“未开启”状态。但是,您可以暂停Bucket版本控制。
在开启版本控制的Bucket中上传文件的行为与未开启版本控制状态下的上传行为一致。但Bucket开启版本控制后,OSS会为新上传至Bucket的Object生成全局唯一的versionID。详情请参见cp(上传文件)。
开启Bucket的版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。您可以通过指定versionID的方式下载指定版本Object,详情请参见cp(下载文件)。您还可以通过指定versionID的方式将Object恢复至任意时刻的历史版本,详情请参见cp(拷贝文件)。
设置版本控制状态
ossutil bucket-versioning --method put oss://BucketName versioning
BucketName
待设置版本控制状态的目标Bucket名称
versioning
为目标Bucket设置版本控制状态,参数如下
enabled
:开启版本控制
当Bucket处于开启版本控制状态时,OSS将为新上传的Object生成全局唯一的随机字符串版本ID
ossutil bucket-versioning --method put oss://my-markdown enabled
(十一)防盗链referer
对象存储OSS支持对存储空间(Bucket)设置防盗链,即通过对访问来源设置白名单的机制,避免OSS资源被其他人盗用。referer命令用于添加、修改、查询、删除Bucket的防盗链配置。
ossutil referer --method put oss://bucketname refererconfig [--disable-empty-referer]
refererconfig
填写域名或IP地址,支持通配符星号(*)和问号(?),多个Referer需以空格分隔。配置示例如下:
配置为www.aliyun.com
时,可匹配www.aliyun.com/123、www.aliyun.com.cn等以www.aliyun.com为前缀的地址。
配置为*www.aliyun.com/
,可匹配www.aliyun.com/和https://ww…
通配符星号(*)表示使用星号代替0个或多个字符。例如配置为*.aliyun.com
,可匹配help.aliyun.com、www.aliyun.com等地址。
通配符问号(?)表示使用问号代替一个字符。
支持带端口的域名或IP,例如www.example.com:8080、10.0.0.0:8080等地址。
--disable-empty-referer
选择是否允许空Referer。
不添加此选项时,表示允许空Referer,即HTTP或HTTPS Header中不带Referer字段或Referer字段为空。
添加此选项后,表示不允许空Referer,即HTTP或HTTPS Header中包含Referer字段的请求才能访问OSS资源。
查看防盗链配置
ossutil64 referer --method get oss://bucketname [local_xml_file]
bucketname
待获取防盗链配置的Bucket名称。
local_xml_file
存放防盗链配置的本地文件名称,例如localfile.txt。如果未指定此参数,则防盗链配置将直接输出到屏幕。
删除防盗链配置
ossutil referer --method delete oss://bucketname
(十二)获取大小du
ossutil du oss://bucketname[/prefix] [--payer requester] [--all-versions][--block-size <value>]
prefix
Bucket下的某个文件目录或指定前缀。
--payer
请求的支付方式。如果希望访问指定路径下的资源产生的流量、请求次数等费用由请求者支付,请将此选项的值设置为requester。
--all-versions
获取所有版本Object的大小。不添加此选项时,默认查询当前版本Object的大小。
--block-size
定义输出结果中指定Bucket或目录下包含的Object大小,取值为KB、MB、GB或TB。不添加此选项时,默认以Byte为单位统计Object的大小。
查询指定Bucket下所有版本Object的大小
ossutil64 du oss://examplebucket --all-versions
查询指定目录下所有当前版本Object的大小
ossutil64 du oss://examplebucket/dir/ --block-size GB
查询examplebucket内指定目录dir下的当前版本Object大小,Object大小以GB为单位进行统计
查询与前缀匹配的所有版本Object的大小
ossutil64 du oss://examplebucket/test --all-versions --block-size KB
查询目标存储空间examplebucket下与前缀test匹配的所有版本Object的大小,Object大小以KB为单位进行统计
(十三)通用选项
当您需要通过命令行工具ossutil切换至另一个地域的Bucket时,可以通过-e选项指定该Bucket所属的Endpoint。当您需要通过命令行工具ossutil切换至另一个阿里云账号下的Bucket时,可以通过-i选项指定该账号的AccessKey ID,并通过-k选项指定该账号的AccessKey Secret。
例如您需要为另一个阿里云账号下,华东1(杭州)名为examplebucket的存储空间开启版本控制/,命令如下:
ossutil64 bucket-versioning--method put oss://examplebucket enabled -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
(十四)bucket其它操作
显示帮助信息
-h
,--help
-u
, --update
仅返回当前目录下的文件和子目录
-d
, --directory
通过使用文件URL下载目标文件到本地的方式探测本地和目标Bucket之间的网络状态
-download
表示HTTP的请求类型,
--method
取值为PUT
、GET
、DELETE
等。
指定输出文件所在的目录
--output-dir
输出文件目前包含cp命令批量拷贝文件出错时所产生的report文件
默认值:当前目录下的ossutil_output目录。
返回结果的最大个数
--limited-num
设置ossutil工具的语言
-L
, --language
取值如下:
CH
(默认值):中文。设置为CH时,请确保您的系统编码方式为UTF-8。
EN
:英文。
删除Bucket、Object或碎片操作
--delete
仅在删除Bucket时使用此选项
-b
, --bucket
强制操作,不进行询问提示
-f
, --force
获取Bucket名称
--bucketname
对oss://bucket_name后面的key进行编码
--encoding-type
取值为url
,如果不指定该选项,则表示key未经过编码。
不对URL中的正斜线(/)进行编码
--disable-encode-slash
指定HTTP的访问速度
--trafic-limit
用于sign命令中。单位为bit/s。
默认值:0,表示不限速。
取值范围:819200838860800,即100 KB/s100 MB/s。
指定IP地址访问OSS
--local-host
cp命令中用于指定ossutil工具的本地IP地址。指定该选项后,ossutil将通过指定IP地址访问OSS
上传链接子目录
--enable-symlink-dir
默认不上传。probe命令可以探测是否存在死循环链接文件或者目录。
仅上传、下载、拷贝当前目录下的文件,忽略子目录及子目录下的文件
--only-current-dir
probe命令的探测项目
--probe-item
取值如下:
upload-speed
:探测上传带宽。
download-speed
:探测下载带宽。
cycle-symlink
:探测本地文件目录中是否存在死循环链接文件或者目录。
同步文件到本地
sync命令与cp命令的区别
sync命令强制以递归的方式遍历指定文件夹内所有文件或子文件夹。cp命令需增加-r选项才会进行递归操作。
通过sync命令将数据同步到OSS时,ossutil支持通过--delete选项将目的端存在而源端不存在的文件都删除,仅保留本次同步的文件。cp命令不支持--delete选项。
sync不支持--version-id选项,无法在已开启版本控制的Bucket内同步历史版本文件。cp命令支持--version-id选项。
ossutil sync file_url cloud_url
[-f --force]
[-u --update]
[--delete]
[--enable-symlink-dir] #同步链接子目录
[--disable-all-symlink] #同步目录时,忽略所有的链接子文件以及链接子目录。
[--disable-ignore-error] #批量操作时不忽略错误。
[--only-current-dir] #仅同步当前目录下的文件,忽略子目录及子目录下的文件。
[--output-dir <value>] #指定输出文件所在的目录。输出文件是指批量同步文件出错时产生的report文件,默认保存在当前目录下的ossutil_output目录。
[--bigfile-threshold <value>] #设置断点续传文件的大小阈值,单位为字节。
#默认值:100 MB
#取值范围:0~9223372036854775807
[--part-size <value>] #设置分片大小,单位为字节。
#默认情况下ossutil会根据文件大小自行计算合适的分片大小值。
#取值范围:1~9223372036854775807
[--checkpoint-dir <value>] #指定断点续传记录信息所在的目录。断点续传操作失败时,ossutil会自动创建名为.ossutil_checkpoint的目录,并在该目录下记录checkpoint信息,断点续传成功后会删除该目录。如果通过该选项指定了目录,请确保指定的目录可以被删除。
[--encoding-type <value>]
[--snapshot-path <value>]
[--include <value>]
[--exclude <value>]
[--meta <value>]
[--acl <value>] #文件的读写权限ACL。取值如下:
#default:继承Bucket的读写权限。
#private(默认值):只有该Bucket的拥有者可以对该Bucket内的文件进行读写操作,其他人无法访问该Bucket内的文件。
#public-read:只有Bucket拥有者可以对该Bucket内的文件进行写操作,其他用户(包括匿名访问者)都可以对该Bucket中的文件进行读操作。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可能会侵害您的合法权益。除特殊场景外,不建议您配置此权限。
#public-read-write:任何人(包括匿名访问者)都可以对该Bucket内文件进行读写操作。这有可能造成您数据的外泄以及费用激增,请谨慎操作。
[--maxupspeed <value>] #最大上传速度,单位为KB/s。默认值为0,表示不限制上传速度。
[--disable-crc64]
[--payer <value>]
[-j, --job <value>]
[--parallel <value>]
[--retry-times <value>] #发生错误后的重试次数。默认值为10,取值范围为1~500。
[--tagging <value>] #文件的标签信息,格式为TagkeyA=TagvalueA&TagkeyB=TagvalueB....。
file_url
:待同步的本地文件夹路径。例如Linux系统文件路径/localfolder/
,Windows系统文件路径D:\localfolder\
。
cloud_url
: OSS文件夹路径。格式为oss://bucketname/path/。例如oss://examplebucket/exampledir/。如果输入的cloud_url没有以正斜线(/)结尾,ossutil会自动在结尾处添加一个正斜线(/)。
文件元信息
ossutil64 set-meta oss://bucketname[/prefix] # /prefix: Bucket下的资源,例如目录、文件等。
[header:value#header:value...]
[--update] #更新文件元信息。该选项可简写为-u,且不能与--delete选项同时使用。
[--delete] #删除文件元信息。该选项不能与--update选项同时使用。
[-r,--recursive] #如果指定该选项时,ossutil将为所有与prefix匹配的文件设置元信息。如果不指定该选项,则ossutil只为指定文件设置元信息。
[-f, --force] #强制操作,不进行询问提示。
[--object-file, <value>] #该选项用于批量设置、更新或删除多个Object的元信息。使用该选项的步骤如下:
#您需要指定.txt或者XML格式的本地文件,并在本地文件中换行填写所有待设置、更新或删除元信息的Object。
#ossutil读取本地文件中的所有Object,然后对这些Object进行元信息的设置、更新或删除操作。
[--snapshot-path, <value>] #如果指定该选项,则只对本次操作的Object生成快照。如果操作的Object已经存在快照信息,则忽略本次操作。
[--disable-ignore-error] #批量操作时不忽略错误。
[--version <value>] #Object的指定版本。仅适用于已开启或暂停版本控制状态Bucket下的Object。
[--include <value>] #包含符合指定条件的所有Object。
[--exclude <value>] #不包含符合指定条件的所有Object。
thanks