使用 AWS S3 同步同步具有最小时间戳的文件



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

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

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

否,AWS 命令行界面 (CLI( aws s3 sync 命令没有仅包含定义时间段内创建的文件的选项

请参阅: AWS s3 同步文档

听起来您的大部分时间都花在检查文件是否需要更新上。一些选项:

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

最新更新