Linux安装使用阿里云ossutil

  1. 安装ossutil。

    sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash

    说明

    • 安装过程中,需要使用解压工具(unzip、7z)解压软件包,请提前安装其中的一个解压工具。

    • 安装完成后,ossutil会安装到/usr/bin/目录下。

  2. 配置ossutil。

    1. 输入配置命令。

      ossutil config
    2. 根据提示设置配置文件路径。

      请输入配置文件名,文件名可以带路径(默认为:/home/user/.ossutilconfig,回车将使用默认路径。
      如果用户设置为其它路径,在使用命令时需要将--config-file选项设置为该路径): 

      ossutil默认使用/home/user/.ossutilconfig作为配置文件,若您设置了配置文件的路径,则每次使用命令时需增加-c选项指定配置文件。例如配置文件保存为/home/config,使用ls时,命令格式如下:

      ossutil ls oss://examplebucket -c /home/config
    3. 根据提示设置工具的语言。请输入语言CHEN。工具使用的语言默认与操作系统保持一致。该配置项将在此次config命令设置成功后生效。

    4. 根据提示设置工具的语言。

      请输入语言CH或EN。工具使用的语言默认与操作系统保持一致。该配置项将在此次config命令设置成功后生效。

    5. 根据提示分别设置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 - 获取扮演角色的临时身份凭证

  3. 验证是否已成功安装ossutil。

    ossutil

    如果屏幕中输出ossutil所有支持的命令,表明已成功安装ossutil。

  4. 上传文件RAM用户或RAM角色需要拥有 oss:PutObject 权限,需要阿里云账号或账号管理员通过RAM PolicyBucket 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数。

  5. 若执行命令的ECS或服务器的资源(网络、内存、CPU)有限,建议将并发数调低(如100以下)。如果资源未占满,可适当增加并发数。

  6. 并发数过高可能因线程切换开销和资源竞争导致性能下降,甚至引发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

更多参数参考:如何通过cp命令将本地文件上传至OSS-对象存储(OSS)-阿里云帮助中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今晚哒老虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值