2013-01-01 79 views
2

我想測試一下,看看我的TTL = 0是否有效。
我有什麼:
S3 bucket,掛載到我的redhat目錄。所以當我從shell編輯一個簡單的txt文件時,我可以在aws控制檯桶管理器中打開它並查看文件。此外,我創建了雲端分佈,因此我可以從雲端鏈接打開txt文件。
測試:
我用telnet編輯txt文件,然後從S3 bucket部分的aws控制檯打開它,我看到文件已經改變,但是當我在雲端鏈接上打開文件時,它沒有改變。這意味着TTL = 0不起作用。TTL = 0的Amazon S3和Cloudfront測試步驟

我如何驗證TTL = 0的作品?它的設置是否正確?創建分配之後,我找不到再次編輯TTL的位置。

感謝

回答

4

報價AWS

請注意,我們的默認行爲是不會改變;如果沒有設置緩存控制標頭,則在檢查原始文件對該文件的更改之前,每個邊緣位置將繼續使用24小時的有效期。您還可以繼續使用Amazon CloudFront的失效功能,以便比文件上設置的TTL更早過期。

您很可能沒有正確設置緩存控件。一種確認方法是Enable S3 Bucket Logging - 每當有來自S3 Bucket的新HTTP GET時,即使它們來自CloudFront,也會出現新文件。

您也可以使用curl(或s3curl)直接測試S3,以便正確跟蹤其標頭。

我的建議是,無論您何時上傳新內容,都會強制CloudFront處於無效狀態。如果你使用的是s3fs這樣的工具,那麼inotify/icron可能會幫助你:

(聲明:我完全憎恨將文件系統映射到S3的全部想法,它們是完全不同的工具,漏泄抽象')

3

這很可能是你沒有從S3發送任何TTL頭。 CloudFront將在源文件中查找TTL頭,如果找不到任何內容,則默認爲24小時。

您可以查看設置存儲桶策略或使用像S3瀏覽器這樣的工具自動設置標題。 http://s3browser.com/automatically-apply-http-headers.php

如果你只是想測試,那麼我會按照下面的步驟。

  • 在你的水桶
  • 通過AWS控制檯創建一個新的文本文件,找到該文件,並檢查和/或添加緩存頭
  • 從CloudFront的檢索文件
  • 變化的文件鬥
  • 入住AWS控制檯中的新文件的標題(你的S3製圖程序可以刪除以前的文件頭)
  • 從CloudFront的
  • 檢索新更改的文件3210

如果每個月有大量編輯,則向每個請求發送無效呼叫至CloudFront可能會收取費用。加上失效需要幾分鐘(有時20分鐘或更長時間)才能傳播,這意味着您無法立即更改您的內容。