2017-04-20 17 views
0

端末でコマンドを連続して実行すると、2回目は同期されません。どちらが素晴らしいです!それはしないでください。しかし、ビルドプロセスを実行してaws s3 syncをプログラムで実行すると、ビルドプロセスが別の方法で2回目の変更を行っているかのように、すべてのファイルが両方とも同期されます。ファイルが更新されたかどうかを `aws s3 sync`がどのように判断しますか?

何が起きているのか把握できません。何か案は?

私のビルドプロセスがこれによれば、基本的pug source/ --out static-site/stylus -c styles/ --out static-site/styles/

+1

Amazon S3が[最終的に一貫性がある](Amazon S3データ整合性モデル)の結果である可能性があります。あなたが2回の実行の間に遅れを入れたら、それはより良く動作しますか? –

+0

私は数分間隔で試しました。同じ結果。 – Costa

答えて

2

ある - http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

S3の同期は、ファイルを同期する必要があるかどうかを確認するために、ファイルのサイズと最終更新タイムスタンプを比較します。

あなたのケースでは、ファイルサイズが変更されていないのにビルドシステムが新しいタイムスタンプを生成していると思われますか?

+0

ああ...タイムスタンプを疑っていた。 – Costa

+1

'--exact-timestamps'オプションがあります。このオプションでは、タイムスタンプが正確に一致すると、同じサイズのアイテムは無視されます。デフォルトの動作は、ローカルバージョンがS3バージョンより新しい場合を除き、同じサイズのアイテムを無視することです。 –

+0

うーん...本当に助けてくれない。これを修正するには、pugのコンパイルコマンドを中断してcmpなどを実行する必要があります。私はそれをやり始める方法を想像することはできません。私はちょうどこのアイテムを控えるだろうと思う。 – Costa

関連する問題