本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使檔案失效時需要知道的事項
當您指定要失效的檔案時,請參閱下列資訊:
- 區分大小寫
-
無效路徑區分大小寫。例如,
/images/image.jpg
並/images/Image.jpg
指定兩個不同的檔案。 - 使用 Lambda URI 函數變更
-
如果您的 CloudFront 分佈在檢視器請求事件上觸發 Lambda 函數,且如果函數變更請求檔案URI的 ,建議您將這兩個函數都失效URIs,以從 CloudFront邊緣快取中移除檔案:
-
檢視器請求URI中的
-
函數變更URI之後的
範例
假設您的 Lambda 函數從下列位置變更檔案URI的 :
https://d111111abcdef8.cloudfront.net/index.html
前往URI包含語言目錄的 :
https://d111111abcdef8.cloudfront.net/en/index.html
若要使該檔案失效,您必須指定以下路徑:
-
/index.html
-
/en/index.html
如需詳細資訊,請參閱Invalidation paths。
-
- 預設根物件
-
若要使預設根物件 (檔案) 失效,請以您為任何其他檔案指定路徑的相同方式指定其路徑。如需詳細資訊,請參閱預設根物件的運作方式。
- 轉送 Cookie
-
如果您設定 CloudFront 將 Cookie 轉送至原始伺服器, CloudFront edge 快取可能包含多個版本的檔案。當您將檔案失效時, 會 CloudFront 驗證檔案的每個快取版本,無論其相關聯的 Cookie 為何。您無法根據關聯的 Cookie 選擇性地使某些版本而不是其他版本失效。如需詳細資訊,請參閱根據餅乾緩存內容。
- Forwarding headers (轉送標頭)
-
如果您設定 CloudFront 將標頭清單轉送至原始伺服器,並根據標頭的值進行快取, CloudFront 則edge 快取可能包含多個版本的檔案。當您將檔案失效時, CloudFront無論標頭值為何, 檔案的每個快取版本都會失效。您無法根據標頭值選擇性地使某些版本而不是其他版本失效。(如果您設定 CloudFront 將所有標頭轉送到原始伺服器, CloudFront 不會快取您的檔案。) 如需詳細資訊,請參閱根據要求標頭快取內容。
- 轉送查詢字串
-
如果您設定 CloudFront 將查詢字串轉送至原始伺服器,則必須在使檔案失效時包含查詢字串,如下列範例所示:
-
/images/image.jpg?parameter1=a
-
/images/image.jpg?parameter1=b
如果用戶端請求包含針對同一檔案的五種不同查詢字串,則您可以使該檔案失效五次,每一查詢字串一次,或者也可在失效路徑中使用 * 萬用字元,如以下範例所示:
/images/image.jpg*
如需有關在失效路徑使用萬用字元的詳細資訊,請參閱Invalidation paths。
如需查詢字串的詳細資訊,請參閱根據查詢字串參數快取內容。
若要判斷哪些查詢字串正在使用中,您可以啟用 CloudFront記錄。如需詳細資訊,請參閱配置和使用標準日誌(訪問日誌)。
-
- 允許的上限
-
如需允許的失效次數上限的詳細資訊,請參閱 並行失效請求上限。
- Microsoft Smooth Streaming file (Microsoft Smooth Streaming 檔案)
-
當您為對應的快取行為啟用 Smooth Streaming 時,您無法將 Microsoft Smooth Streaming 格式的媒體檔案失效。
- 路徑中的非ASCII或不安全字元
-
如果路徑包含 RFC1738
中定義的非ASCII字元或不安全字元, URL- 會編碼這些字元。請勿 URL- 編碼路徑中的任何其他字元,或 CloudFront 不會使更新檔案的舊版本失效。 - Invalidation paths (失效路徑)
-
路徑與分佈有關。例如,若要使 的檔案失效
https://d111111abcdef8.cloudfront.net/images/image2.jpg
,請指定/images/image2.jpg
。注意
在CloudFront主控台
中,您可以省略路徑中的正斜線,如下所示: images/image2.jpg
。當您直接使用 CloudFront API 時,無效路徑必須以正斜線開頭。您也可以使用
*
萬用字元使多個檔案同時失效。取代 0 或多個字元的*
,必須是失效路徑的最後一個字元。重要
若要在無效中使用萬用字元 (*),您必須在路徑結尾放置萬用字元。插入任何位置的星號 (*) 會視為文字字元比對,而非萬用字元無效。
如果您使用 AWS Command Line Interface (AWS CLI) 使檔案失效,並指定包含
*
萬用字元的路徑,則必須在類似 的路徑周圍使用引號 ("
)"/*"
。路徑的長度上限為 4,000 個字元。
範例:無效路徑
-
若要使目錄中的所有檔案失效:
/
directory-path
/*
-
若要使目錄、其所有子目錄和目錄和子目錄中的所有檔案失效:
/
directory-path
*
-
為了使所有名稱相同,但不同的檔案名稱延伸的檔案失效,例如 logo.jpg、logo.png 和 logo.gif:
/
directory-path
/
file-name
.*
-
若要使檔案名稱以相同字元開頭的目錄中的所有檔案失效 (例如影片的所有檔案的HLS格式),無論檔案名稱副檔名為何:
/
directory-path
/
initial-characters-in-file-name
*
-
當您根據查詢字串參數 CloudFront 設定快取,且您想要使檔案的每個版本失效時:
/
directory-path
/
file-name
.
file-name-extension
*
-
若要使分佈中的所有檔案失效:
/*
如需有關使用 Lambda 函數變更 時使檔案失效的資訊URI,請參閱 Changing the URI Using a Lambda Function。
如果失效路徑是一個目錄且如果您尚未標準化指定目錄的方法 (包含或不含結尾斜線 (/)),我們建議您,讓包含及不包含結尾斜線的目錄皆失效,例如
/images
和/images/
。 -
- 已簽署 URLs
-
如果您使用的是已簽署的 URLs,請只包含問號 (?) URL之前的 部分,使檔案失效。