ossutil常用操作

20小时前学习12

image.png

ossutil阿里云OSS文件操作工具,可以批量操作文件

下载地址:

1.0版本

2.0版本

windows上直接下载解压后进入解压目录通过cmd命令行操作

重点差异:

  1. 配置文件格式不一样(v1:[Credentials];v2:[default])
  2. 参数风格大体接近,但读取配置、部分高级参数、返回提示、错误码细节有区别
  3. v1 配置文件字段:accessKeyID(大写ID);v2:accessKeyId(小写Id)
  4. v1 是单二进制老版本;v2 是重构新版,子命令体系有微调

统一说明:

  • -r:递归
  • -u:增量,跳过大小/修改时间一致的文件
  • --forbid-overwrite true:禁止覆盖已有文件
  • --config-file "xxx":指定配置文件路径

一、版本查看

v1(1.7.19)

ossutil -v

v2

ossutil version

二、配置相关

v1

生成/交互式配置

ossutil config

配置文件内容模板(v1)

[Credentials]
accessKeyID=xxx
accessKeySecret=xxx
endpoint=http://xxx

指定配置文件执行(你在用的)

ossutil ls oss://bucket --config-file "C:\Users\user14\.ossutilconfig"

v2

交互式配置

ossutil config

配置文件模板(v2)

[default]
accessKeyId=xxx
accessKeySecret=xxx
endpoint=http://xxx

指定配置文件

ossutil ls oss://bucket --config-file "C:\Users\user14\.ossutilconfig"

三、列举 bucket / 列举桶内文件

v1

# 列出所有bucket
ossutil ls --config-file "C:\Users\user14\.ossutilconfig"
# 列出桶内文件(递归)
ossutil ls oss://mybucket/ -r --config-file "C:\Users\user14\.ossutilconfig"

v2

ossutil ls
ossutil ls oss://mybucket/ -r

四、上传文件/文件夹

v1

# 单个文件上传
ossutil cp D:\test.txt oss://mybucket/ --config-file "C:\Users\user14\.ossutilconfig"
# 文件夹递归上传 + 增量
ossutil cp D:\localdir oss://mybucket/dir/ -r -u --config-file "C:\Users\user14\.ossutilconfig"

v2

ossutil cp D:\test.txt oss://mybucket/
ossutil cp D:\localdir oss://mybucket/dir/ -r -u

五、下载文件/文件夹

v1

ossutil cp oss://mybucket/test.txt D:\ --config-file "C:\Users\user14\.ossutilconfig"
ossutil cp oss://mybucket/dir/ D:\localdir/ -r -u --config-file "C:\Users\user14\.ossutilconfig"

v2

ossutil cp oss://mybucket/test.txt D:\
ossutil cp oss://mybucket/dir/ D:\localdir/ -r -u

六、桶之间互拷(同region,服务端复制,不落地本地)✅

v1

# 全量递归复制,增量,不覆盖
ossutil cp oss://src-bucket/ oss://dst-bucket/ -r -u --forbid-overwrite true --config-file "C:\Users\user14\.ossutilconfig"

v2

ossutil cp oss://src-bucket/ oss://dst-bucket/ -r -u --forbid-overwrite true

⚠️ 源末尾必须带 /,代表桶根目录所有对象

七、同步 sync(镜像同步:源删了,目标也删除,谨慎!)

v1

ossutil sync oss://src-bucket/ oss://dst-bucket/ --config-file "C:\Users\user14\.ossutilconfig"
ossutil sync D:\local oss://bucket/dir/ --config-file "C:\Users\user14\.ossutilconfig"

v2

ossutil sync oss://src-bucket/ oss://dst-bucket/
ossutil sync D:\local oss://bucket/dir/

八、删除对象(慎用!)

v1

# 删除单个
ossutil rm oss://mybucket/test.txt --config-file "C:\Users\user14\.ossutilconfig"
# 递归删除目录下全部
ossutil rm oss://mybucket/dir/ -r --config-file "C:\Users\user14\.ossutilconfig"

v2

ossutil rm oss://mybucket/test.txt
ossutil rm oss://mybucket/dir/ -r

九、创建 / 删除 bucket

v1

ossutil mb oss://newbucket --config-file "C:\Users\user14\.ossutilconfig"
ossutil rb oss://newbucket --config-file "C:\Users\user14\.ossutilconfig"

v2

ossutil mb oss://newbucket
ossutil rb oss://newbucket

十、获取文件元信息

v1

ossutil stat oss://mybucket/test.txt --config-file "C:\Users\user14\.ossutilconfig"

v2

ossutil stat oss://mybucket/test.txt

十一、批量命令通用参数(v1、v2 大部分通用)

参数 含义
-r 递归目录
-u 增量模式,跳过相同文件
--forbid-overwrite true 禁止覆盖
--quiet 静默输出,少打印日志
--jobs N 设置并发数,如 --jobs 10

⚠️ 两个版本踩坑重点(非常关键)

  1. 不要混用配置文件:v1的配置文件给v2读、v2给v1读,直接报 Credentials 找不到;
  2. 跨 region 桶复制:ossutil 本身不支持服务端复制,会自动下载到本地再上传,速度很慢;
  3. 你这个兼容S3的私有对象存储,v1 能跑通,v2 不一定能跑通(签名逻辑有差异),所以你现在优先固定 v1.7.19;
  4. cp 是复制(只新增覆盖,不会删目标多余文件);sync 是镜像(会删除目标独有的文件),迁移备份优先用 cp -r -u。

扫描二维码推送至手机访问。

版权声明:本文由星光下的赶路人发布,如需转载请注明出处。

本文链接:https://forstyle.cc/zblog/post/133.html

分享给朋友: