ossutil常用操作

ossutil阿里云OSS文件操作工具,可以批量操作文件
下载地址:
windows上直接下载解压后进入解压目录通过cmd命令行操作
重点差异:
- 配置文件格式不一样(v1:
[Credentials];v2:[default])- 参数风格大体接近,但读取配置、部分高级参数、返回提示、错误码细节有区别
- v1 配置文件字段:
accessKeyID(大写ID);v2:accessKeyId(小写Id)- 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 |
⚠️ 两个版本踩坑重点(非常关键)
- 不要混用配置文件:v1的配置文件给v2读、v2给v1读,直接报 Credentials 找不到;
- 跨 region 桶复制:ossutil 本身不支持服务端复制,会自动下载到本地再上传,速度很慢;
- 你这个兼容S3的私有对象存储,v1 能跑通,v2 不一定能跑通(签名逻辑有差异),所以你现在优先固定 v1.7.19;
cp是复制(只新增覆盖,不会删目标多余文件);sync是镜像(会删除目标独有的文件),迁移备份优先用cp -r -u。



