2

TTL=0 が機能することをテストして確認したいと思います。
私が持っているもの:
Redhat のディレクトリにマウントされている S3 バケット。そのため、シェルから単純な txt ファイルを編集すると、aws コンソールのバケット マネージャーでそれを開いてファイルを表示できます。また、クラウドフロント ディストリビューションを作成したので、クラウドフロント リンクから txt ファイルを開くことができます。
テスト:
telnet で txt ファイルを編集し、S3 バケット セクションの aws コンソールから開くと、ファイルが変更されていることがわかりますが、クラウドフロント リンクでファイルを開くと、変更されませんでした。これは、TTL=0 が機能しなかったことを意味します。

TTL=0 の動作を確認するにはどうすればよいですか? それは正しく設定されていますか?ディストリビューションを作成した後、TTL を再度編集する場所が見つかりません。

ありがとう

4

2 に答える 2

4

AWSの引用:

デフォルトの動作は変更されていないことに注意してください。キャッシュ制御ヘッダーが設定されていない場合、各エッジ ロケーションは引き続き 24 時間の有効期限を使用してから、オリジンでそのファイルへの変更を確認します。また、引き続き Amazon CloudFront の無効化機能を使用して、ファイルに設定されている TTL よりも早くファイルを期限切れにすることもできます。

キャッシュ制御を正しく設定していない可能性があります。これを確認する 1 つの方法は、S3 バケットのログ記録を有効にすることです。CloudFront からのものであっても、S3 バケットから新しい HTTP GET があるたびに、新しいファイルが表示されます。

curl (またはs3curl ) を使用して S3 を直接テストすることもできるため、ヘッダーを正しく追跡できます。

新しいコンテンツをアップロードするときはいつでも、CloudFront を強制的に無効にすることをお勧めします。s3fs などのツールを使用している場合は、inotify/icron が役立ちます。

(免責事項:ファイルシステムをS3にマッピングするという考えは完全に嫌いです。それらはまったく異なるツールであり、「漏れやすい抽象化」を取得する可能性があります)

于 2013-01-01T09:39:42.447 に答える
3

S3 から TTL ヘッダーを送信していない可能性が最も高いです。CloudFront はソースファイルで TTL ヘッダーを探し、何も見つからない場合、デフォルトで 24 時間になります。

バケット ポリシーを設定するか、S3 ブラウザなどのツールを使用してヘッダーを自動的に設定することができます。http://s3browser.com/automatically-apply-http-headers.php

テストしたいだけの場合は、以下の手順に従います。

  • バケットに新しいテキスト ファイルを作成する
  • AWS コンソールを使用して、ファイルを見つけ、キャッシュ ヘッダーを確認または追加します。
  • CloudFront からファイルを取得する
  • バケット内のファイルを変更する
  • AWS コンソールで新しいファイルのヘッダーを確認します (S3 マッピング ユーティリティによって以前のファイル ヘッダーが消去される場合があります)。
  • CloudFront から新しく変更されたファイルを取得する

1 か月あたりの編集数が多い場合、リクエストごとに CloudFront に無効な呼び出しを送信すると、料金が発生する場合があります。さらに、無効化が反映されるまでに数分 (場合によっては 20 分以上) かかるため、コンテンツを即座に変更することはできません。

于 2013-01-01T10:43:34.593 に答える