Aws-cli: AWSS3同期はすべおのファむルを同期するわけではありたせん

䜜成日 2018幎04月18日  Â·  44コメント  Â·  ゜ヌス: aws/aws-cli

数十䞇のファむルがあり、S3はファむルを確実に同期したす。 ただし、玄1幎前に倉曎されたファむルがいく぀かあり、それらは異なっおいおも同期たたは曎新されないこずに気付きたした。

送信元ず宛先の䞡方のタむムスタンプも異なりたすが、同期は行われたせん。 S3には最新のファむルがありたす。

コマンドは次のずおりです
aws s3 s3// source / local-folder --delete

同期されないすべおのファむルの日付は同じですが、耇数の異なるフォルダヌに分散しおいたす。

タむムスタンプを倉曎し、ファむルを再床同期させるためのS3 touchコマンドはありたすか

feature-request s3 s3sync s3syncstrategy

最も参考になるコメント

このチケットが少し前に閉じられおいなかったなんお信じられたせん。 私の知る限り、それは蚭蚈どおりに機胜したすが、ナヌザヌ私を含むはそれがどのように機胜するかに぀いお掚枬し、期埅どおりに動䜜しないず驚いおいたす。

  • ファむルがs3に同期たたはコピヌされるず、バケットで受信するタむムスタンプはコピヌされた日付であり、゜ヌスファむルの日付よりも垞に新しい日付です。 これがs3の仕組みです。
  • サむズが倉曎された堎合、たたはタヌゲットのタむムスタンプが゜ヌスよりも_叀い_堎合にのみ、ファむルが同期されたす。
  • ぀たり、゜ヌスファむルが曎新されおもファむルのサむズが倉曎されず、倉曎されたファむルの日付が最埌にコピヌされた日付よりも前の堎合、s3syncはそれらを再床同期したせん。
  • --exact-timestamps _only_の䜿甚
  • s3がアップロヌドされたファむルのハッシュを蚈算するずは思わないので、ファむルサむズず最埌にアップロヌドされた日付をチェックずしお回避する方法はありたせん。

結論ずしおは、意図したずおりに機胜するずいうこずですが、これが望たしくないさたざたなナヌスケヌスがありたす。 䞊で述べたs3 cp --recursiveを䜿甚しおそれを回避したした

党おのコメント44件

--exact-timestampsを䜿甚しおこれを回避できる可胜性がありたすが、アップロヌドしおいる堎合は過剰なアップロヌドが発生する可胜性がありたす。

再珟に圹立おるために、同期しおいないファむルの1぀に関する情報を教えおください。

  • ロヌカルでの正確なファむルサむズはどれくらいですか
  • S3の正確なファむルサむズはどれくらいですか
  • ロヌカルで最埌に倉曎された時刻は䜕ですか
  • S3で最埌に倉曎された時刻は䜕ですか
  • ロヌカルファむルはシンボリックリンク/シンボリックリンクの背埌にありたすか

コマンド実行の䟋
aws s3 sync s3// bucket / / var / www / folder / --delete

いく぀かのファむルがありたせん
正確なロヌカルサむズ2625
正確なs32625
ロヌカルの正確なタむムスタンプ2017幎1月6日9:32:31
正確なタむムスタンプs32017幎6月20日10:14:57
S3およびロヌカルの通垞のファむル

箄50,000個のファむルのリストにそのようなケヌスがいく぀かありたす。 ただし、同期されおいないものはすべお、2017幎6月20日のさたざたな時点です。

--exact-timestampsを䜿甚するず、たったく同じ内容ですが、ダりンロヌドするファむルがはるかに倚くなりたす。 ただし、䞊蚘の䟋ではただ欠萜しおいたす。

ここで同じ問題。
aws s3 sync dist/ s3://bucket --deleteはdist / index.htmlでs3//bucket/index.htmlをアップロヌドしたせん

dist / index.htmlずs3//bucket/index.htmlのファむルサむズは同じですが、倉曎時間は異なりたす。

実際、awscliがファむルをアップロヌドした堎合もあれば、アップロヌドしなかった堎合もありたす。

ここでも同じですが、 --exact-timestampsは圹に立ちたせん- index.htmlは䞊曞きされたせん。

この問題は今日/先週は順調でした。 ここでも、index.htmlは同じファむルサむズですが、内容ず倉曎時刻が異なりたす。

誰かがこれの回避策を知っおいたすか

私はちょうどこれに遭遇したした。 @icymindず@samdammersによっお報告されたのず同じ問題私のロヌカル index.htmlファむルの内容が倉曎されたしたが、そのファむルサむズはS3の以前のコピヌず同じでした。 {{aws s3sync}}コマンドはアップロヌドしたせんでした。 私の「回避策」は、S3からindex.htmlを削陀しおから、同期を再床実行するこずでしたこれにより、新しいファむルであるかのようにアップロヌドされたず思いたす。

サヌバヌ EC2 linux
バヌゞョン aws-cli/1.16.108 Python/2.7.15 Linux/4.9.62-21.56.amzn1.x86_64 botocore/1.12.98


aws s3 syncが270Tを超えるデヌタを実行した埌、数GBのファむルを倱いたした。 Syncは、特殊文字を含むファむルをたったくコピヌしたせんでした。

ファむルの䟋/data/company/storage/projects/1013815/3.Company Estimates/B. Estimates

cp -R -nを䜿甚する必芁がありたした

同じ問題がここにありたす同じサむズで異なるタむムスタンプのxmlファむルが正しく同期されおいたせん

この問題を再珟するこずができたした

bug.tar.gz
添付のtarファむルをダりンロヌドしおから

tar -zxvf bug.tar.gz
aws s3 sync a/ s3://<some-bucket-name>/<some_dir>/ --delete
aws s3 sync b/ s3://<some-bucket-name>/<some_dir>/ --delete

ディレクトリaずbのrepomd.xmlの内容ずタむムスタンプが異なっおいおも、
bを同期しようずしおも䜕も起こりたせん

テスト枈み
aws-cli / 1.16.88 Python / 2.7.15 Darwin / 16.7.0 botocore / 1.12.78
aws-cli / 1.16.109 Python / 2.7.5 Linux / 3.10.0-693.17.1.el7.x86_64 botocore / 1.12.99

同じ問題が発生しおいたす。 1぀のファむルがロヌカルディレクトリに曎新されたs3からファむルのディレクトリを同期しようずしおいたす。 そのファむルはロヌカルディレクトリで曎新されたせん

私もこれを芋おいたす。 私の堎合、生成された.jsファむルを参照するindex.htmlを䜿甚したreactアプリです。 --deleteオプションず同期しお、参照されなくなった叀いファむルを削陀したす。 index.htmlがアップロヌドされないこずがあり、その結果、存圚しなくなった.jsファむルを指す叀いindex.htmlが生成されたす。

したがっお、私のりェブサむトは機胜しなくなりたす!!!

私は珟圚、なぜこれが起こっおいるのかに぀いお無知です。

誰かが䜕かアむデアや回避策を持っおいたすか

同じ問題がありたすが、回避策が芋぀かりたした。 私は知っおいたす、それは最善の方法ではありたせんが、それは機胜したす

aws s3 cp s3://SRC s3://DEST ...
aws s3 sync s3://SRC s3://DEST ... --delete

コピヌは正垞に機胜しおいるように思われるので、最初にコピヌしおから、syncコマンドを䜿甚しお、存圚しなくなったファむルを削陀したす。
問題ができるだけ早く修正されるこずを願っおいたす。

パむプラむンに--exact-timestampsを远加したしたが、問題は再発しおいたせん。 しかし、そもそも断続的だったので、盎ったかどうかはわかりたせん。 それが再び起こるならば、私は@ marns93の提案で行きたす。

この問題は発生し、 --exact-timestamps問題が解決したした。 それがたったく同じ問題であるかどうかはわかりたせん。

この問題が発生しおいたすが、各呌び出しでコピヌする必芁があるのはほんの䞀握り1ダヌス未満のファむルであるため、非垞に明癜です。

それが発生する状況は、䞊蚘で報告されたものず同じですsync線集されおいるフォルダヌに、ファむルの内容が異なるがファむルサむズが同じファむルが含たれおいる堎合、 syncは新しい曎新されたファむルのコピヌをスキップしたす。 S3。

スクリプトをaws s3 cp --recursiveしお修正したしたが、これは厄介なバグです。長い間、aws-cliが単玔であるこずに気づかずに、独自のアプリケヌションに䜕らかの競合状態があるず考えおいたした。曎新されたファむルをコピヌしないこずを遞択したす。

これもhtmlファむルで芋たした

aws-cli/1.16.168 Python/3.6.0 Windows/2012ServerR2 botocore/1.12.158

GitHubの芁点からs3 syncコマンドをコピヌしお貌り付けたずころ、 --size-only蚭定されおいたした。 それを削陀するず問題が解決したした

ビルドアヌティファクトがバケットにアップロヌドされおいるずきに、この問題が発生したした。 HTMLはアセットリンクのハッシュコヌドのみを倉曎する傟向があるため、サむズは垞に同じでした。 ビルドが前のビルドよりも早すぎる堎合、S3同期はこれらをスキップしおいたした。 䟋

1001-ビルド1の実行
1005-ビルド2の実行
1006-ビルド1がs3にアップロヌドされたす
1010-ビルド2がs3にアップロヌドされたす

ビルド2にはタむムスタンプが10:05のHTMLファむルがありたすが、ビルド1によっおs3にアップロヌドされたHTMLファむルのタむムスタンプは10:06です。これは、オブゞェクトが䜜成されたずきのこずです。 これにより、リモヌトファむルはロヌカルファむルよりも「新しい」ため、s3同期では無芖されたす。

以前に提案したように、珟圚s3 cp --recursiveにs3 sync --deleteを䜿甚しおいたす。

これが誰かに圹立぀こずを願っおいたす。

今週初めに同じ問題が発生したした。 --size-onlyを䜿甚しおいたせん.は# 、サむズは同じでしたが、s3のタむムスタンプは新しいむンデックスのタむムスタンプより40分早かったです。 .html。 䞀時的な回避策ずしおindex.htmlを削陀したしたが、すべおのデプロむメントを再確認するこずは䞍可胜です。

ここでも同じですが、同じ名前でタむムスタンプずコンテンツが異なるファむルはS3からロヌカルに同期されず、-deleteは圹に立ちたせん

同じ問題が発生したす。 同じサむズでタむムスタンプが新しいindex.htmlはコピヌされたせん。

この問題は1幎以䞊前に報告されたした。 なぜ修正されないのですか

実際には、snycコマンドは圹に立たなくなりたす。

正確な時間

--exact-timestampsで問題が修正されたした

私もこの問題の圱響を受けおいたす。 --exact-timestampsを远加したしたが、この問題により、探しおいたファむルが修正されたようです。 私は培底的な怜玢をしおいたせん。 私は100kファむルず20GBのオヌダヌで、ここにある他のファむルよりもはるかに少ないです。

同じ問題に盎面したした。内容や日付が異なっおいおも、 aws s3 sync䞀郚のファむルをスキップしたす。 ログには、スキップされたファむルが同期されおいるが、実際には同期されおいないこずが瀺されおいたす。
しかし、 aws s3 sync再床実行するず、これらのファむルが同期されたした。 ずおも倉だ

Hugoでサむトを構築するずきにこの問題が発生し、぀いにそれを理解したした。 私はHugoテヌマにサブモゞュヌルを䜿甚しおおり、CIでそれらをプルダりンしおいたせんでした。 これはHugoで譊告を匕き起こしおいたしたが、倱敗は匕き起こしおいたせんでした。

# On local
                   | EN
-------------------+-----
  Pages            | 16
  Paginator pages  |  0
  Non-page files   |  0
  Static files     |  7
  Processed images |  0
  Aliases          |  7
  Sitemaps         |  1
  Cleaned          |  0

# On CI
                   | EN  
-------------------+-----
  Pages            |  7  
  Paginator pages  |  0  
  Non-page files   |  0  
  Static files     |  2  
  Processed images |  0  
  Aliases          |  0  
  Sitemaps         |  1  
  Cleaned          |  0  

サブモゞュヌルを曎新するず、すべおが期埅どおりに機胜したした。

たた、この問題の圱響も受けおいるため、新しいvendor/autoload.phpファむルが同期されなかった埌、プラットフォヌムが玄18時間ダりンし、 vendor/composer/autoload_real.phpで叀くなっおいたした。アプリ党䜓を読み蟌めたせんでした。

これは_非垞に_奇劙な問題であり、この問題がこれほど長い間開かれおいるずは信じられたせん。

同期が最終倉曎の代わりにハッシュを䜿甚しないのはなぜですか 0の意味がありたす。

将来のGoogle瀟員のために、私が埗おいた線集枈みの゚ラヌ

PHP message: PHP Fatal error:  Uncaught Error: Class 'ComposerAutoloaderInitXXXXXXXXXXXXX' not found in /xxx/xxx/vendor/autoload.php:7
Stack trace:
#0 /xxx/xxx/bootstrap/app.php(3): require_once()
#1 /xxx/xxx/public/index.php(14): require('/xxx/xxx...')
#2 {main}
  thrown in /xxx/xxx/vendor/autoload.php on line 7" while reading response header from upstream: ...
---

同じ問題、すべおのファむルが同期されおいるわけではなく、 --exact-timestampsは圹に立ちたせんでした。

aws --version
aws-cli/1.18.22 Python/2.7.13 Linux/4.14.152-127.182.amzn2.x86_64 botocore/1.15.22

このチケットがこんなに長く開いおいるなんお信じられたせん...同じ問題がここにありたす。Amazonの顧客の執着はどこにありたすか

このチケットが少し前に閉じられおいなかったなんお信じられたせん。 私の知る限り、それは蚭蚈どおりに機胜したすが、ナヌザヌ私を含むはそれがどのように機胜するかに぀いお掚枬し、期埅どおりに動䜜しないず驚いおいたす。

  • ファむルがs3に同期たたはコピヌされるず、バケットで受信するタむムスタンプはコピヌされた日付であり、゜ヌスファむルの日付よりも垞に新しい日付です。 これがs3の仕組みです。
  • サむズが倉曎された堎合、たたはタヌゲットのタむムスタンプが゜ヌスよりも_叀い_堎合にのみ、ファむルが同期されたす。
  • ぀たり、゜ヌスファむルが曎新されおもファむルのサむズが倉曎されず、倉曎されたファむルの日付が最埌にコピヌされた日付よりも前の堎合、s3syncはそれらを再床同期したせん。
  • --exact-timestamps _only_の䜿甚
  • s3がアップロヌドされたファむルのハッシュを蚈算するずは思わないので、ファむルサむズず最埌にアップロヌドされた日付をチェックずしお回避する方法はありたせん。

結論ずしおは、意図したずおりに機胜するずいうこずですが、これが望たしくないさたざたなナヌスケヌスがありたす。 䞊で述べたs3 cp --recursiveを䜿甚しおそれを回避したした

@ jam13説明に感謝したす、今ではすべおが埌知恵で理にかなっおいたす

それにもかかわらず、私はそれが珟圚十分に文曞化されおいないこずを䞻匵したす --exact-timestampsは_s3からlocal_たでのみ機胜し、s3 cliはサむレントではなく単にベむルアりトするこずを瀺す、ドキュメントの真っ赀な譊告を期埅しおいたしたパラメヌタを無芖しお、オプションのハッシュベヌスの比范モヌドは、確実に機胜する同期モヌドを実装するために必芁です。

はい、ドキュメントは玠晎らしいものではなく、オプションを黙っお無芖するこずは非垞に圹に立ちたせん。 過去2幎間にAWSからのこのチケットに関する管理者の䞍圚、たたは公匏のコメントさえも、ボリュヌムを物語っおいたす。

@ jam13いく぀かのドキュメントを

@kyleknap @KaibaLopez @stealthycoinこれに関する曎新はありたすか

このチケットが少し前に閉じられおいなかったなんお信じられたせん。 私の知る限り、それは蚭蚈どおりに機胜したすが、ナヌザヌ私を含むはそれがどのように機胜するかに぀いお掚枬し、期埅どおりに動䜜しないず驚いおいたす。

* When a file is synced or copied _to_ s3, the timestamp it receives on the bucket is the date it was copied, which is _always_ newer than the date of the source file. This is just how s3 works.

* Files are only synced if the size changes, or the timestamp on the target is _older_ than the source.

* This means that if source files are updated but the size of the files remains unchanged and the dates on those changed files pre-date when they were last copied, s3 sync will not sync them again.

* Using `--exact-timestamps` _only_ works when copying from s3 to local. It is deliberately not enabled for local to s3 because the timestamps are _never_ equal. So setting it when syncing from local to s3 has no effect.

* I don't think s3 calculates hashes for uploaded files, so there's no way of avoiding file size and last uploaded date as checks.

結論ずしおは、意図したずおりに機胜するずいうこずですが、これが望たしくないさたざたなナヌスケヌスがありたす。 䞊で述べたs3 cp --recursiveを䜿甚しおそれを回避したした

s3はオブゞェクトをハッシュしたすが、アップロヌダヌでETagずしお保存したす。 問題は、ETagがチャンクの数ずファむルのアップロヌド時に䜿甚されたチャンクサむズに䟝存するこずです。 アップロヌダヌでない堎合は、チャンクサむズがわからない可胜性がありたすただし、ETagからチャンクの数を取埗できたす。 なぜこのように行われるのかわかりたせん。

これはおそらく意図したずおりに機胜しおいたすが、期埅どおりに機胜しおいたせん。 ファむルが倉曎されたかどうかを確認するのは簡単なはずです

人々が予期せず同期しおいないこずを経隓するこずは、ただの倧きな萜ずし穎です
デヌタ。 ここにいるすべおの人を救うこずができる100の異なる回避策がありたす
このチケットを読んだ時間ず、これを発芋するのに費やした時間
圌らの゜ヌスコヌドの問題でした。 なぜ圌らはこれらの1぀を行うこずができないのですか

2020幎4月14日火曜日午埌1時57分キヌスケリヌ[email protected]
曞きたした

このチケットが少し前に閉じられおいなかったなんお信じられたせん。 私ができる限り
教えおください、それは蚭蚈どおりに機胜したすが、ナヌザヌ私を含むは
それがどのように機胜するべきか、そしおそれが圌らのように振る舞わないずきに驚かされる
期埅される。

  • ファむルがs3に同期たたはコピヌされるず、バケットで受信するタむムスタンプはコピヌされた日付であり、゜ヌスファむルの日付よりも垞に新しい日付です。 これがs3の仕組みです。

  • サむズが倉曎された堎合、たたはタヌゲットのタむムスタンプが゜ヌスよりも_叀い_堎合にのみ、ファむルが同期されたす。

  • ぀たり、゜ヌスファむルが曎新されおもファむルのサむズが倉曎されず、倉曎されたファむルの日付が最埌にコピヌされた日付よりも前の堎合、s3syncはそれらを再床同期したせん。

  • --exact-timestamps _only_の䜿甚

  • s3がアップロヌドされたファむルのハッシュを蚈算するずは思わないので、ファむルサむズず最埌にアップロヌドされた日付をチェックずしお回避する方法はありたせん。

結論ずしおは、意図したずおりに機胜したすが、さたざたなナヌスケヌスがありたす
これが望たしくない堎合。 䞊蚘のように
<m_8540343689970969812_issuecomment-534061850>回避したした
s3cpを䜿甚する--recursive

s3はオブゞェクトをハッシュしたすが、完党に理解できる方法ではありたせん
https://teppen.io/2018/10/23/aws_s3_verify_etags/ 、これを次のように保存したす
おなじみのETaghttps //en.wikipedia.org/wiki/HTTP_ETag 。 問題
ETagは、チャンクの数ずチャンクのサむズに䟝存したす。
ファむルがアップロヌドされたした。アップロヌダヌでない堎合は、おそらくアップロヌドしおいたせん。
チャンクサむズを知っおいたすただし、ETagからチャンクの数を取埗できたす。 私
なぜそれがこのように行われるのか分かりたせん。

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/aws/aws-cli/issues/3273#issuecomment-613677369 、たたは
退䌚
https://github.com/notifications/unsubscribe-auth/ADUA4NKJMCUSGTNAAITGPXTRMTE2NANCNFSM4E3JNHPQ
。

>>

...トム

同じ問題がありたした。 ゜ヌスバケットポリシヌを次のように倉曎しお解決したした。

 "Action": [
                "s3:*"
            ],

cp --recursiveずsync䞡方に問題がありたした。
これですべお解決したした。 うたくいくはずの2぀のアクションがありたしたが、うたくいきたせんでした。 それを詊しおみお、それがあなたの問題を解決したかどうか私に知らせおください。

ここでチャむムを鳎らしお、私もsync問題を抱えおいるず蚀いたす。 私が気付いた唯䞀の理由は、䞡端のMHLを封印しお怜蚌しおいたためです。 syncは機胜せず、890GBのうち玄60GBが䞍足しおいお、フォルダヌごずに調べようずしたした。 次に、このスレッドを芋぀けおcp --recursiveを詊したずころ、デヌタが再び流れ始めたした。 このデヌタの残りを取埗したら、最埌にもう䞀床MHLを怜蚌したす。

問題を再珟するためのスクリプトを䜜成したした。次を䜿甚したす。
aws-cli / 1.18.34 Python / 2.7.17 Darwin / 19.4.0 botocore / 1.13.50

スクリプトを実行するず、倉曎のアップロヌド埌、同じ倉曎がダりンロヌドされなくなったこずがわかりたす。 これはスクリプトです

#!/bin/bash
PROFILE=foobar #PUT YOUR PROFILE HERE
BUCKET=baz123  #PUT YOUR BUCKET HERE

mkdir -p test/local
mkdir -p test/s3

cat >test/s3/test.json <<EOF
{
  "__comment_logging": "set cookie expiration time of aws split, examples '+1 hour', '+5 days', '+100 days'",
  "splitCookieExpiration": "+3 hours"
}
EOF

#UPLOAD
aws --profile=$PROFILE s3 sync --delete test/s3 s3://$BUCKET/ 
#DOWNLOAD
aws --profile=$PROFILE s3 sync --delete s3://$BUCKET/ test/local


#CHANGE 
cat >test/s3/test.json <<EOF
{
  "__comment_logging": "set cookie expiration time of aws split, examples '+1 hour', '+5 days', '+100 days'",
  "splitCookieExpiration": "+2 hours"
}
EOF


#UPLOAD
aws --profile=$PROFILE s3 sync --delete test/s3 s3://$BUCKET/ 
#DOWNLOAD
aws --profile=$PROFILE s3 sync --delete s3://$BUCKET/ test/local

@htrappmann前に@ jam13回答https://github.com/aws/aws-cli/issues/3273#issuecomment-602514439をお読みください—これはバグではなく、機胜です

ヒント@appleromに感謝したすが、 @ jam13がそれを「蚭蚈どおりに機胜する」ず宣蚀する方法を本圓に理解できたせん。 同期ツヌルは、゜ヌスず宛先を等しく保぀ように蚭蚈する必芁がありたすが、これはこの同期では提䟛されたせん。 これにより、倚くのアプリケヌションで䜿甚できなくなりたす。

たた、ファむルサむズは倉曎されおいたせんが、゜ヌスのタむムスタンプが新しい堎合も、私のサンプルスクリプトのように、同期は行われたせん。

ヒント@appleromに感謝したすが、 @ jam13がそれを「蚭蚈どおりに機胜する」ず宣蚀する方法を本圓に理解できたせん。 同期ツヌルは、゜ヌスず宛先を等しく保぀ように蚭蚈する必芁がありたすが、これはこの同期では提䟛されたせん。 これにより、倚くのアプリケヌションで䜿甚できなくなりたす。

たた、ファむルサむズは倉曎されおいたせんが、゜ヌスのタむムスタンプが新しい堎合も、私のサンプルスクリプトのように、同期は行われたせん。

それは間違ったこずをしおいるように芋えたすね。

他のいく぀かのテストを実行しお、ダりンロヌドを実行するために実際に䜕をする必芁があるかを確認したした。

ls -l test/local/test.json
aws s3 sync --delete s3://$BUCKET/ test/local
touch -m -t 201901010000 test/local/test.json
ls -l test/local/test.json
aws s3 sync --delete s3://$BUCKET/ test/local
touch test/local/test.json
ls -l test/local/test.json
aws s3 sync --delete s3://$BUCKET/ test/local

ファむルの倉曎時刻を昚幎に倉曎しおも、s3 syncはファむルをダりンロヌドしないため、単にタむムゟヌンの問題ではありたせん。

倉曎時刻を珟圚に倉曎するずロヌカルファむルがリモヌトよりも新しいため、s3syncはファむルをダりンロヌドしたす。

私はそれを理解できなかったので、ドキュメントをチェックしたした。その状態は --exact-timestampsオプションを説明するずき

デフォルトの動䜜では、ロヌカルバヌゞョンがS3バヌゞョンよりも

ダりンロヌドに--exact-timestampsを䜿甚するず、期埅どおりに機胜したすタむムスタンプに違いがあるずコピヌになりたすが、このデフォルトは私には逆に思えたす。

「蚭蚈どおりに機胜する」ず蚀う代わりに、「文曞化されたずおりに機胜する」ず蚀うべきだったのかもしれたせん。

@ jam13うわヌ、それはずおも奇劙です、そしお私はそれがドキュメンテヌションの混乱だず思いたした
しかし、これがバグを修正する新しい方法である堎合は、ドキュメントに明瀺的に配眮するだけです...

@ jam13

タむムゟヌンの問題を陀倖できるかどうかはわかりたせん。
毎日、s3コン゜ヌルで最初の倉曎を行い、 aws s3 sync s3://$BUCKET .を同期するず、同期されたす。 ファむルに別の倉曎を加えおから同期するず、同期されたせん。
しかし、それは翌日機胜したす。

これは、タむムゟヌンが原因である可胜性があるかどうかを再考させたす。

それで、あなたが䞊で述べたtouch -mコマンドに぀いおもう少しチェックしたした。

touch -m -t 201901010000 test/local/test.json
ファむルの倉曎時刻を昚幎に倉曎しおも、s3 syncはファむルをダりンロヌドしないため、単にタむムゟヌンの問題ではありたせん。

䞊蚘のtouchコマンドは、mtimeをさかのがるだけです。 ctimeをバックデヌトしたせんそしおできたせん。
S3 cliはおそらくctimeを䜿甚したすか

$ touch file
$ stat -x file
  File: "file"
  Size: 0            FileType: Regular File
  ...
  ...
Access: Mon Jul 20 21:59:11 2020
Modify: Mon Jul 20 21:59:11 2020
Change: Mon Jul 20 21:59:11 2020

$ touch -m -t 201901010000 file
$ stat -x file
  File: "file"
  Size: 0            FileType: Regular File
  ...
  ...
Access: Mon Jul 20 21:59:11 2020
Modify: Tue Jan  1 00:00:00 2019
Change: Mon Jul 20 22:01:48 2020

ファむルの同期はファむルをロヌカルで保蚌する必芁があるず思いたすが、リモヌトでも同じです。 私はそれを蚀うのに䞍公平だずは思わない。 aws s3 syncは、同期ずいうよりもupdate方が倚いず思いたす。 aws s3 syncすべおの実装をaws s3 cp --recursiveたす。

https://github.com/aws/aws-cli/issues/3273#issuecomment-602514439で説明しおくれたたす

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡