2017-04-20 38 views
0

当我在终端中背靠背运行命令时,它不会再次同步。太棒了!它不应该。但是,如果我运行构建过程并以编程方式运行aws s3 sync,那么它会同时对所有文件进行同步处理,就好像我的构建过程第二次以不同方式更改内容一样。`aws s3 sync`如何确定文件是否已更新?

无法弄清楚可能发生了什么。有任何想法吗?

我的构建过程基本上是pug source/ --out static-site/stylus -c styles/ --out static-site/styles/

+1

这可能是Amazon S3 [最终一致](Amazon S3数据一致性模型)的结果。如果你在两次执行之间拖延,它表现会更好吗? –

+0

我尝试了几分钟。同样的结果。 – Costa

回答

2

根据这一点 - http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

S3同步的文件大小和最后修改的时间戳进行比较,看是否有文件需要同步。

在你的情况下,我怀疑构建系统会产生一个新的时间戳,即使文件大小没有改变?

+0

Argh ....怀疑时间戳。 – Costa

+1

有一个'--exact-timestamps'选项,当时间戳完全匹配时,相同大小的项目将被忽略。默认行为是忽略相同大小的项目,除非本地版本比S3版本更新。 –

+0

嗯...并没有真正的帮助。为了解决这个问题,我需要中断帕格的编译命令来运行cmp或其他东西。我无法想象如何开始这样做。我想我会放弃这个项目。 – Costa

相关问题