-
安装ossutil。
sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash说明
-
安装过程中,需要使用解压工具(unzip、7z)解压软件包,请提前安装其中的一个解压工具。
-
安装完成后,ossutil会安装到/usr/bin/目录下。
-
-
配置ossutil。
-
输入配置命令。
ossutil config -
根据提示设置配置文件路径。
请输入配置文件名,文件名可以带路径(默认为:/home/user/.ossutilconfig,回车将使用默认路径。 如果用户设置为其它路径,在使用命令时需要将--config-file选项设置为该路径):ossutil默认使用/home/user/.ossutilconfig作为配置文件,若您设置了配置文件的路径,则每次使用命令时需增加-c选项指定配置文件。例如配置文件保存为/home/config,使用ls时,命令格式如下:
ossutil ls oss://examplebucket -c /home/config -
根据提示设置工具的语言。请输入语言
CH或EN。工具使用的语言默认与操作系统保持一致。该配置项将在此次config命令设置成功后生效。 -
根据提示设置工具的语言。
请输入语言CH或EN。工具使用的语言默认与操作系统保持一致。该配置项将在此次config命令设置成功后生效。
-
根据提示分别设置Endpoint、AccessKey ID、AccessKey Secret和STSToken参数。使用STS临时授权账号访问OSS时需要配置STSToken,否则置空跳过即可。
参数说明如下:
参数
是否必填
说明
endpoint
是
填写Bucket所在地域的Endpoint。例如,本示例使用华东1(杭州)的外网Endpoint,设置为
https://oss-cn-hangzhou.aliyuncs.com。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint,设置为
https://oss-cn-hangzhou-internal.aliyuncs.com。关于各地域Endpoint的更多信息,请参见地域和Endpoint。
accessKeyID
是
填写账号的AccessKey,AccessKey的获取方式,请参见创建AccessKey。
使用ROS脚本快速创建有OSS管理权限的RAM用户AccessKey
accessKeySecret
是
stsToken
否
使用STS临时授权账号访问OSS时需要配置该项,否则置空跳过即可。关于stsToken的生成方式,请参见AssumeRole - 获取扮演角色的临时身份凭证。
-
-
验证是否已成功安装ossutil。
ossutil如果屏幕中输出ossutil所有支持的命令,表明已成功安装ossutil。
-
上传文件RAM用户或RAM角色需要拥有 oss:PutObject 权限,需要阿里云账号或账号管理员通过RAM Policy或Bucket Policy授予操作权限。
命令格式:
ossutil cp file_url cloud_url [options]参数及选项说明如下:
参数
说明
参数
说明
file_url
本地文件路径。如果目标是目录,需以路径分隔符(/ 或 \)结尾。如Linux系统文件路径
/localfolder/examplefile.txt,Windows系统文件路径D:\localfolder\examplefile.txt。cloud_url
OSS文件路径,格式为
oss://bucket[/prefix]。如oss://examplebucket/examplefile.txt。-r, --recursive
递归操作。当指定该选项时,ossutil会对Bucket下所有符合条件的Object进行操作,否则只对指定的单个Object进行操作。
-f --force
强制操作,不进行询问提示。
-u,--update
只有当目标文件不存在,或源文件的最后修改时间晚于目标文件时,ossutil才会执行上传操作。
--maxupspeed
最大上传速度,单位为KB/s。默认值为0,表示不限制上传速度。
--enable-symlink-dir
上传链接子目录,默认不上传。
--disable-all-symlink
上传时忽略所有的软链接子文件以及软链接子目录。
--disable-ignore-error
批量操作时不忽略错误。
--only-current-dir
仅上传当前目录下的文件,忽略子目录及子目录下的文件。
--bigfile-threshold
设置断点续传文件的大小阈值,单位为字节。
默认值:100 MB
取值范围:0~9223372036854775807
--part-size
设置分片大小,单位为字节。默认情况下ossutil会根据文件大小自行计算合适的分片大小值。
取值范围:1~9223372036854775807
--checkpoint-dir
指定断点续传记录信息所在的目录。断点续传操作失败时,ossutil会自动创建名为
.ossutil_checkpoint的目录,并在该目录下记录checkpoint信息,断点续传成功后会删除该目录。如果指定了该选项,请确保指定的目录可以被删除。--encoding-type
文件名称的编码方式。取值为url。如果不指定该选项,则表示文件名称未经过编码。
--include
包含符合指定条件的所有文件。语法规范和使用示例,请参见批量上传符合条件的文件。
--exclude
不包含任何符合指定条件的文件。语法规范和使用示例,请参见批量上传符合条件的文件。
--meta
文件的元数据。包括部分HTTP标准属性(HTTP Header)以及以
x-oss-meta-开头的用户自定义元数据(User Meta)。文件元数据格式为header:value#header:value,示例为Cache-Control:no-cache#Content-Encoding:gzip。有关OSS支持元数据的更多介绍,请参见管理文件元数据。--acl
文件的读写权限ACL。取值如下:
-
default(默认值):继承Bucket的读写权限。
-
private:只有该Bucket的拥有者可以对该Bucket内的文件进行读写操作,其他人无法访问该Bucket内的文件。
-
public-read:只有Bucket拥有者可以对该Bucket内的文件进行写操作,其他用户(包括匿名访问者)都可以对该Bucket中的文件进行读操作。这有可能造成数据的外泄以及费用激增,如果被人恶意写入违法信息还可能会侵害您的合法权益。除特殊场景外,不建议配置此权限。
-
public-read-write:任何人(包括匿名访问者)都可以对该Bucket内文件进行读写操作。这有可能造成数据的外泄以及费用激增,请谨慎操作。
--snapshot-path
指定保存上传文件时的快照信息所在的目录。在下一次上传文件时,ossutil会读取指定目录下的快照信息进行增量上传。
--disable-crc64
关闭CRC64数据校验。默认情况下,ossutil进行数据传输时都会打开CRC64校验。
--disable-dir-object
表示上传文件时不为目录生成Object。
--payer
请求的支付方式。如果希望访问指定路径下的资源产生的流量、请求次数等费用由请求者支付,请将此选项的值设置为requester。
--tagging
上传文件时设置标签信息,格式为
TagkeyA=TagvalueA&TagkeyB=TagvalueB....。-j,--jobs
多文件操作时的并发任务数,默认值为3,取值范围为1~10000。
--parallel
单文件操作时的并发任务数,取值范围为1~10000。 如果不设置此选项,默认由ossutil根据操作类型和文件大小自行决定。
--start-time
Unix时间戳。如果输入这个选项,最后更新时间早于该时间的Object会被忽略。
说明
仅1.7.18及以上版本支持设置该参数。关于如何升级版本,请参见update(ossutil版本升级)。
--end-time
Unix时间戳。如果使用该选项,则最后更新时间晚于通过此选项指定时间的Object会被忽略。
说明
-
如果同时指定了start-time和end-time,文件的修改时间在start-time和end-time之间才会执行拷贝命令。
-
仅1.7.18及以上版本支持设置该参数。关于如何升级版本,请参见update(ossutil版本升级)。
关于此命令的其他通用选项,请参见通用选项。
当默认并发数达不到用户的性能要求时,可以调整-j,--jobs和--parallel选项来升降性能。默认情况下,ossutil根据文件大小来计算parallel。当批量传输大文件时,实际的并发数为jobs数乘以parallel数。
-
-
若执行命令的ECS或服务器的资源(网络、内存、CPU)有限,建议将并发数调低(如100以下)。如果资源未占满,可适当增加并发数。
-
并发数过高可能因线程切换开销和资源竞争导致性能下降,甚至引发EOF错误。请根据机器的实际资源状况调整-j,--jobs和--parallel。进行性能压测时,建议从较低的并发数开始,逐步增加以找到最佳值。
推荐的上传命令与参数
上传单个文件
-
上传文件到指定目录,并沿用原文件名。若不指定上传至OSS的文件名,则默认使用原文件名进行保存;若指定文件名,则按照指定的文件名保存在OSS中。
ossutil cp examplefile.txt oss://examplebucket/desfolder/
批量上传
-
仅上传文件夹内的文件
使用cp命令时增加-r选项,可以只将本地文件夹内的文件上传到OSS指定路径。
ossutil cp -r localfolder/ oss://examplebucket/desfolder/
建议不要直接使用 ossutil cp -r ./localdir oss://bucket/dir,可以加上下面这些参数来更好地控制上传过程:
ossutil cp -r ./localdir oss://bucket/dir \
--jobs 10 \ # 并发上传的文件数量,根据机器CPU和内存调整(默认3)
--parallel 5 \ # 每个大文件内部的并发分片数
--maxupspeed 102400 \ # 限制上传速度为100 MB/s(单位KB/s),避免占满带宽
--update \ # (可缩写为-u)增量上传,只上传新增或修改的文件,非常适合反复执行
--bigfile-threshold 52428800 # 设置50MB以上的文件就用分片上传(默认100MB)
-
仅上传当前目录下的文件,忽略子目录
ossutil cp localfolder/ oss://examplebucket/desfolder/ --only-current-dir -r

460

被折叠的 条评论
为什么被折叠?



