本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
當您指定要失效的檔案時,請參閱下列資訊:
- 區分大小寫
-
失效路徑區分大小寫。例如,
/images/image.jpg
和/images/Image.jpg
指定兩個不同的檔案。 - 使用 Lambda 函數變更 URI
-
如果您的 CloudFront 分佈在檢視器請求事件中觸發 Lambda 函式,而且該函式變更了請求檔案的 URI,我們建議您使以下兩種 URI 失效,以便從 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 邊緣快取可能包含檔案的多個版本。當您使檔案失效後,CloudFront 會使該檔案的每個快取版本皆失效,無論其是否與 Cookie 關聯。您無法根據關聯的 Cookie 選擇性地使某些版本而不是其他版本失效。如需詳細資訊,請參閱根據 Cookie 快取內容。
- Forwarding headers (轉送標頭)
-
如果您配置 CloudFront 轉送標頭清單到原始伺服器,並且根據標頭的值進行快取,則 CloudFront 邊緣快取可能包含檔案的多個版本。當您使檔案失效後,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 格式的媒體檔案失效。
- Non-ASCII or unsafe characters in the path (路徑中非 ASCII 或不安全字元)
-
如果路徑包含非 ASCII 字元或 RFC 1738
中定義的不安全字元,請將這些字元進行 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/
。 -
- Signed URLs (簽署的 URL)
-
如果您使用已簽章的 URL,則透過僅包含問號 (?) 前面的 URL 部分以使檔案失效。