【问题标题】:AWS CLI - Moving files between different S3 bucketsAWS CLI - 在不同的 S3 存储桶之间移动文件
【发布时间】:2020-06-25 09:16:30
【问题描述】:

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

现有结构:

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

S3 => Thumbnails(bucket) => ID(folder) => list of thumbnails

新结构:

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

                                                        => Thumbnails(folder) => list of thumbnails

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

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

【问题讨论】:

  • ID(folder) 有多个值,还是只有一个文件夹?也就是说,是否有多个 ID 不同的文件夹,每个文件夹都包含一个 Videos 和 Thumbnails 文件夹?
  • 会有多个不同 ID 的文件夹,每个文件夹里面都包含视频和缩略图

标签: amazon-web-services amazon-s3 aws-cli


【解决方案1】:

这在 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/

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

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

【讨论】:

  • 非常感谢您的快速响应.. 将尝试一下
  • 您的意思是两个不同的帐户需要两组不同的密钥吗?
  • @John 听从了您的建议。手动创建公式以生成测试命令,一旦它们起作用,将所有实际命令存储在 shell 中,它产生了奇迹。谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-07-21
  • 2018-04-30
  • 1970-01-01
  • 2019-06-07
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多