阿里云oss跨租户同步文件夹
问题
阿里云跨租户oss bucket文件同步,对于 不同租户的阿里云 OSS Bucket,即使它们在 同一个地域,也无法直接使用 ossutil 进行跨租户 Bucket 同步。
解决
1.ossutils下载
2.通过中转下载 + 上传
- 使用租户 A 的 AK/SK 下载文件夹到本地:
1 | ossutil config # 配置租户 A 的 AK/SK |
- 切换租户 B 的 AK/SK,上传到目标 Bucket:
1 | ossutil config # 改为租户 B 的 AK/SK |
3.oss自动跳过重复
在使用 ossutil 下载和上传文件时,为了实现:
- 下载时跳过本地已有的相同文件
- 上传时跳过 OSS 已存在的相同文件
可以使用内置的参数 --update 来实现 增量同步效果。
3.1.使用 --update 实现跳过相同文件
下载文件(避免重复下载):
1 | ossutil cp oss://your-bucket/path/ ./local-dir/ --recursive --update |
含义:
只下载 OSS 上的文件,当本地没有该文件,或者OSS 上的文件比本地新(修改时间较新)
上传文件(避免重复上传):
1 | ossutil cp ./local-dir/ oss://your-bucket/path/ --recursive --update |
含义:
- 只上传本地文件,当OSS 上没有对应文件,或者本地文件比 OSS 上的文件新(修改时间较新)