本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使檔案無效時需知道的內容
當您指定要使檔案無效時,請參閱下列資訊:
- 區分大小寫
-
失效路徑區分大小寫。例如,
/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 邊緣快取可能包含檔案的多個版本。當您使檔案無效時,會使檔案的每個快取版本 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 檔案)
-
如果您已針對對應的快取行為啟用「平滑串流」,就無法使用 Microsoft 流暢串流格式的媒體檔案失效。
- 路徑中的非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
-
如果您使用的是 signedURLs,請僅在問號 (?) URL 之前加入部分來使檔案失效。