【问题标题】:Sending files using aws sync使用 aws sync 发送文件
【发布时间】:2025-12-14 16:05:02
【问题描述】:

我正在使用 aws sync 命令让 jenkins 将文件发送到 s3。问题是 aws sync 再次发送相同的文件,即使它与 s3 中的文件名相同。那是因为在发送到 s3 之前,我们必须先 tar 然后解压缩文件,然后 tar 和 untar 会更改修改时间。有没有办法更有效地将文件发送到 s3,以免发送相同的文件?

【问题讨论】:

  • 您的 Jenkins 服务器是否在 ec2 实例上?

标签: aws-cli


【解决方案1】:

您可以指定--size-only 标志,使每个对象的大小成为用于决定是否从源同步到目标的唯一标准。 (docs)

【讨论】:

  • key是对象的标识符。因此,在查看每个键时,它只会检查对象的大小而不是任何元数据。我编辑了我的答案以更清楚。
  • 这行不通,因为文件可能已更改但大小仍然相同。
  • 那么现在 CLI 中没有好的解决方案。未实施 ETag 检查,因为我们无法可靠地计算分多个部分上传的文件的 ETag。