AWS CLI - 在不同的 S3 存储桶之间移动文件

Vam*_*lla 2 amazon-s3 amazon-web-services aws-cli

我正在尝试使用 AWS CLI 在两个不同账户中的两个 S3 存储桶之间移动文件。我能够成功地制作文件的测试副本。现在我的问题是,下面的场景是否可以通过 CLI 实现?

现有结构:

S3 => Videos(bucket) => ID(folder) => list of transcoded video files

S3 => Thumbnails(bucket) => ID(folder) => list of thumbnails
Run Code Online (Sandbox Code Playgroud)

新结构:

S3 => Company(bucket) => dev/prod(folder) => ID(folder) => Videos(folder) => list of transcoded video files

                                                        => Thumbnails(folder) => list of thumbnails

Run Code Online (Sandbox Code Playgroud)

ID 文件夹也会有一个 Thumbnails(folder) => 缩略图列表

因此,基本上将两个 S3 存储桶数据合并到新结构中的一个存储桶中。是否可以使用 CLI 进行这种复制?如果是这样,请指导我采用这种方法。

Joh*_*ein 5

这在 AWS CLI 中是不可能的,因为它不是简单的源->目标副本。

您要么需要编写自己的解决方案(例如使用 Python 脚本),要么我有时会创建一个 Excel 电子表格,其中包含源文件列表和一些公式来计算目标。

结果是您想要创建一个公式,该公式表示:

aws s3 sync s3://video-bucket/123/ s3://company-bucket/dev/123/videos/
aws s3 sync s3://thumbnails-bucket/123/ s3://company-bucket/dev/123/thumbnails/
Run Code Online (Sandbox Code Playgroud)

电子表格应该为源列表中的每个 ID 执行此操作。

在 ID 的副本上尝试一下,看看它是否有效。如果是,请将所有命令复制到一个文本文件中并使用 shell 执行它。