【问题标题】:Move files with certain extension from multiple S3 objects to another S3 bucket将具有特定扩展名的文件从多个 S3 对象移动到另一个 S3 存储桶
【发布时间】:2021-05-17 12:54:36
【问题描述】:

我有以下 S3 存储桶结构:

s3://<bucket_name>/
|---object_1/
|   |---images/
|   |   |---<image_11.jpg>
|   |   |---<image_12.jpg>
|   |---annotation/
|   |   |---<image_11.xml>
|   |   |---<image_12.xml>
|---object_2/
|   |---images/
|   |   |---<image_21.jpg>
|   |   |---<image_22.jpg>
|   |---annotation/
|   |   |---<image_21.xml>
|   |   |---<image_22.xml>

我想将所有图像和注释文件分别移动到两个单独的 S3 对象中,以便目标对象结构如下所示:

s3://<bucket_name>/
|---all-images/
|   |---<image_11.jpg>
|   |---<image_12.jpg>
|   |---<image_21.jpg>
|   |---<image_22.jpg>
|---all-annotation/
|   |---<image_11.xml>
|   |---<image_12.xml>
|   |---<image_21.xml>
|   |---<image_22.xml>

问题

我已经尝试过 StackOverflow question 的解决方案,但它不会改变 S3 对象结构。所有文件都使用文件夹名称复制(此处为object_1/images/image_11.jpg)。我希望将所有图像放在一起,而不需要一个对象下的目录结构(此处为all-images/&lt;all_the_jpg_files&gt;)。如何使用 AWS CLI 或 Sage Maker 笔记本实例实现这一目标?

【问题讨论】:

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


    【解决方案1】:

    步骤 1

    使用this StackOverflow question 作为参考创建前缀列表。

    第二步

    遍历前缀列表(此处为object_1obkect_2...)和cpsync 源存储桶和目标存储桶。以下命令是我在 Sage Maker 笔记本实例上使用的命令。

    !/bin/bash  
    for label in list_of_prefixes:
        !aws s3 cp --recursive 's3://<bucket_name>/f"{label}"/images/' 's3://<bucket_name>/all-images/'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      • 2018-06-02
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      相关资源
      最近更新 更多