阿里云oss跨租户同步文件夹

问题

阿里云跨租户oss bucket文件同步,对于 不同租户的阿里云 OSS Bucket,即使它们在 同一个地域也无法直接使用 ossutil 进行跨租户 Bucket 同步

解决

1.ossutils下载

2.通过中转下载 + 上传

  1. 使用租户 A 的 AK/SK 下载文件夹到本地:
1
2
ossutil config  # 配置租户 A 的 AK/SK
ossutil cp oss://source-bucket/path/ ./local_path/ --recursive
  1. 切换租户 B 的 AK/SK,上传到目标 Bucket:
1
2
ossutil config  # 改为租户 B 的 AK/SK
ossutil cp ./local_path/ oss://target-bucket/path/ --recursive

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 上的文件新(修改时间较新)