如何從 CloudFront 移除快取的檔案?

1 分的閱讀內容
0

我更新了原始伺服器上的檔案。不過,Amazon CloudFront 仍在為我的使用者提供舊內容。

簡短描述

依預設,CloudFront 會根據來自來源回應中的快取控制標頭以及 CloudFront 分佈的快取行為中的最小值、最大值和預設 TTL 值在邊緣節點中快取回應。

CloudFront 會根據您設定的值提供快取的檔案,直到快取到期為止。若要立即提供更新的檔案,請使檔案失效,以便從 CloudFront 的快取中移除物件。

**注意:**如果物件使用 Cookie、查詢字串或標頭來變更回應,您無法讓此類物件的特定版本失效。失效會移除物件的所有版本。

解決方法

**重要:**使檔案失效可能會產生費用。如需詳細資訊,請參閱支付檔案失效

使用 AWS Console 使檔案失效

若要使用 AWS Console 使檔案失效,請參閱使用主控台使檔案失效

使用 AWS CLI 使檔案失效

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請確認您使用的是最新的 AWS CLI 版本

若要使用 AWS CLI 使檔案失效,請使用 create-invalidation 命令:

aws cloudfront create-invalidation --distribution-id EDFDVBD6EXAMPLE --paths "/example-path/index.html"

**注意:**將 EDFDVBD6EXAMPLE 取代為提供檔案的發行版的 ID。

若要尋找失效的目前狀態,請使用 get-invalidation 命令:

aws cloudfront get-invalidation --id I2J0I21PCUYOIK --distribution-id EDFDVBD6EXAMPLE

**注意:**將 EDFDVBD6EXAMPLE 取代為提供檔案的發行版的 ID。

若要輪詢失效的狀態,直到其完成,請使用下列命令:

aws cloudfront wait invalidation-completed --id I2J0I21PCUYOIK --distribution-id EDFDVBD6EXAMPLE

**注意:**將 EDFDVBD6EXAMPLE 取代為提供檔案的發行版的 ID。

相關資訊

為什麼 CloudFront 會從 Amazon S3 提供過時的內容?

AWS 官方
AWS 官方已更新 2 年前