Amazon web services 从S3复制有限数量的文件?

Amazon web services 从S3复制有限数量的文件?,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我们使用S3存储桶来存储越来越多的小JSON文件(每个约1KB),其中包含一些与构建相关的数据。我们管道的一部分涉及从S3复制这些文件,并将它们放入内存以执行一些操作 该复制操作通过S3 cli工具命令完成,该命令如下所示: aws s3 cp s3://bucket path~/some/local/path/--recursive--profile dev profile 问题是S3上的json文件数量越来越大,因为每天都有更多的json文件被生成。因为文件太小,所以它的容量甚至比不上S3存

我们使用S3存储桶来存储越来越多的小JSON文件(每个约1KB),其中包含一些与构建相关的数据。我们管道的一部分涉及从S3复制这些文件,并将它们放入内存以执行一些操作

该复制操作通过S3 cli工具命令完成,该命令如下所示:

aws s3 cp s3://bucket path~/some/local/path/--recursive--profile dev profile

问题是S3上的json文件数量越来越大,因为每天都有更多的json文件被生成。因为文件太小,所以它的容量甚至比不上S3存储桶。然而,实际上,没有必要复制所有这些JSON文件。实际上,只要复制最近的100个左右,系统就安全了。但我们确实希望为了其他目的保留旧的

因此,我的问题归结为:是否有一种干净的方法可以从S3复制特定数量的文件(可能按最新版本排序)?我们是否可以在S3存储桶上设置某种修剪策略来删除超过X天或其他时间的文件

  • 您可以将设置为S3存储桶,该存储桶将在一段时间后删除它们
  • 要仅复制几天以前的对象,需要编写脚本
  • 您可以将设置为S3存储桶,该存储桶将在一段时间后删除它们
  • 要仅复制几天以前的对象,需要编写脚本

  • aws CLI中的
    aws s3 sync
    命令听起来非常适合您的需要

    它将仅复制自上次同步以来新建或修改的文件。但是,这意味着目标需要保留“旧”文件的副本,以便不再复制它们


    或者,您可以编写一个脚本(如Python),列出S3中的对象,然后只复制自上次运行复制以来添加的对象。

    aws CLI中的
    aws S3 sync
    命令听起来非常适合您的需要

    它将仅复制自上次同步以来新建或修改的文件。但是,这意味着目标需要保留“旧”文件的副本,以便不再复制它们

    或者,您可以编写一个脚本(例如Python),列出S3中的对象,然后只复制自上次运行复制以来添加的对象