【问题标题】:syncing files with aws s3 sync that have a minimum timestamp使用具有最小时间戳的 aws s3 sync 同步文件
【发布时间】:2018-03-13 08:20:18
【问题描述】:

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

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

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

【问题讨论】:

  • 您为什么要这样做?可能有另一种方法可以实现您的目标。 (随时编辑您的问题以提供更多详细信息。)
  • @John Rotenstein 编辑以显示最终目标

标签: amazon-s3


【解决方案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 参数仅复制具有所需前缀的文件。

【讨论】:

  • 实际上,我们所有的文件都保存在一个使用unix时间戳的目录结构中!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多