使用具有最小时间戳的aws s3同步来同步文件

时间:2018-03-12 05:37:34

标签: amazon-s3

我正在将目录同步到s3存储桶。它是一个目录,所以我只希望它检查在过去24小时内创建/更新的文件。

使用GNU / Linux的rsync,您可以通过管道输出' find -mtime'来实现这一点。到rsync;我想知道aws s3同步是否可以做到这一点?

编辑以显示最终目标:我正在运行一个不断从Web服务器将文件同步到S3的脚本。它每分钟运行一次,首先检查是否已经有进程运行(如果有进程则退出),然后运行aws sync命令。 sync命令大约需要5分钟才能运行,通常会获得3-5个新文件。这会导致系统轻微负载,我想如果我在过去24小时内检查过文件,那么速度会快得多。

1 个答案:

答案 0 :(得分:1)

不,AWS Command-Line Interface (CLI) aws s3 sync命令可以选择只包含在定义的时间段内创建的文件。

请参阅:aws s3 sync documentation

听起来大部分时间都是通过检查文件是否需要更新来消耗的。一些选择:

  • 如果您不需要本地所有文件,可以在一段时间后(48小时?)删除它们。这意味着需要比较较少的文件。默认情况下,aws s3 sync不会删除与本地文件不匹配的目标文件(但可以通过标志进行配置)。
  • 您可以将最近的文件(过去24小时?)复制到另一个目录中,然后从该目录运行aws s3 sync。然后,在成功同步运行后清除这些文件。
  • 如果您对文件名具有灵活性,则可以在文件名中包含日期(例如2018-03-13-foo.txt),然后使用--include--exclude参数仅复制具有所需前缀的文件。