如何使用命令行在不同aws账户的s3存储桶之间传输数据

Ash*_*rpe 2 rsync amazon-s3 amazon-web-services s3cmd

如何使用 s3cmd 在不同 aws 账户的 s3 存储桶之间传输数据?

command will be like this: s3cmd rsync s3://acc1_bucket/folder/ s3://acc2_bucket/folder --recursive 
Run Code Online (Sandbox Code Playgroud)

那么它如何识别第二个存储桶环境呢?正确的做法是什么?

小智 6

您可以使用Minio 客户端(又名 mc),其开源且与 AWS S3 兼容。

在Linux上安装Minio客户端

$ wget https://dl.minio.io/client/mc/release/linux-amd64/mc
$ chmod 755 mc
$ ./mc --help
Run Code Online (Sandbox Code Playgroud)

添加 AWS S3 凭证

$ ./mc config host add mys3one https://s3.amazonaws.com BKIKJAA5BMMU2RHO6Izz V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12

$ ./mc config host add mys3two https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSaa64
Run Code Online (Sandbox Code Playgroud)

使用 mc 镜像将对象/存储桶从一个帐户转移到另一个帐户。

$ ./mc mirror mys3one/photos mys3two/photos2
Run Code Online (Sandbox Code Playgroud)

在此示例中,别名为“mys3one”且存储桶名为“photos”的 s3 帐户将镜像到别名为“mys3two”且存储桶名为 photo2 的 s3 帐户。

您可以通过将其添加到 cron 来自动执行相同的操作,因此只要需要的内容就可以定期同步。

希望能帮助到你。免责声明:我为Minio工作