命名 Amazon S3 物件
物件索引鍵 (或索引鍵名稱) 可在 Amazon S3 儲存貯體中找出獨一的物件。當您建立物件時,您可以指定金鑰名稱。例如,在 Amazon S3 主控台
物件金鑰名稱是 Unicode 字元的序列,其 UTF-8 編碼長度最多為 1,024 個位元組。物件金鑰名稱區分大小寫。下一節將提供物件金鑰名稱的限制,以及選擇金鑰名稱的指引。
選擇物件金鑰名稱
Amazon S3 資料模型是單層式結構:您建立儲存貯體,儲存貯體存放物件。子儲存貯體或子資料夾沒有階層。但您可以仿照 Amazon S3 主控台的做法,使用金鑰名稱字首以及分隔符號來推斷邏輯階層。Amazon S3 主控台支援資料夾的概念。如需如何從 Amazon S3 主控台編輯中繼資料的詳細資訊,請參閱「在 Amazon S3 主控台中編輯物件中繼資料」。
假設您的儲存貯體 (admin-created
) 具有四個物件,其物件金鑰如下:
Development/Projects.xls
Finance/statement1.pdf
Private/taxdocument.pdf
s3-dg.pdf
主控台會使用索引鍵名稱字首 (Development/
、Finance/
和 Private/
) 以及分隔符號 ('/'),來呈現資料夾結構。s3-dg.pdf
金鑰沒有字首,因此會直接在儲存貯體的根層級中顯示其物件。如果開啟 Development/
資料夾,會看到其中內含 Projects.xlsx
物件。
Amazon S3 支援儲存貯體與物件,且沒有任何階層。但在物件金鑰名稱中使用字首與分隔符號,能讓 Amazon S3 主控台及 AWS SDK 推斷階層,並引進資料夾的概念。
Amazon S3 主控台會透過資料夾前綴和分隔符號值作為金鑰建立零位元組物件,以實作資料夾物件的建立。這些資料夾物件不會出現在主控台中,但其他行為會與任何其他物件一樣,並且可以透過 REST API、AWS CLI 和 AWS SDK 來檢視和操作。
物件金鑰命名準則
您可以在物件索引鍵名稱中使用任何 UTF-8 字元。但是,在索引鍵名稱中使用特定字元可能對某些應用程式和通訊協定造成問題。下列準則可協助您提高與 DNS、網頁適用字元、XML 剖析器及其他 API 的合規。
安全字元
下列字元集通常可安心用於金鑰名稱中。
Alphanumeric characters |
|
Special characters |
|
有效的物件金鑰名稱範例如下:
-
4my-organization
-
my.great_photos-2014/jan/myvacation.jpg
-
videos/2014/birthday/video1.wmv
注意
使用 Amazon S3 主控台下載的金鑰名稱以句點「.」結尾的物件,該句點「.」會從下載物件的金鑰名稱中移除。若要下載保留在已下載物件中且金鑰名稱以句點「.」結尾的物件,您必須使用 AWS Command Line Interface (AWS CLI)、AWS SDK 或 REST API。
此外,也請注意以下字首限制:
-
字首為 "./" 的物件必須使用 AWS Command Line Interface (AWS CLI)、AWS SDK 或 REST API 上傳或下載。您無法使用 Amazon S3 主控台。
-
字首為 "../" 的物件無法使用 AWS Command Line Interface(AWS CLI) 或 Amazon S3 主控台上傳。
可能需要特殊處理的字元
索引鍵名稱中的下列字元可能需要額外的程式碼處理,且有可能需要編碼為 URL 或是以十六進位參考。其中一部分是您的瀏覽器可能無法處理的不可列印字元,這些字元也需要特殊處理:
-
& 符號
-
貨幣符號 ("$")
-
ASCII 字元範圍:00 - 1F 十六進位 (0 - 31 十進位) 與 7F (127 十進位)
-
@ 符號
-
等號 ("=")
-
分號 (";")
-
正斜線 ("/")
-
冒號 (":")
-
加號 ("+")
-
空格 - 在某些情況下,可能會遺失大量連續空格 (特別是多個空格)
-
逗號 (",")
-
問號 ("?")
需要避免的字元
建議您不要在金鑰名稱中使用下列字元,因為這些字元需要經過大量的特殊字元處理,才能在所有應用程式之間達到一致。
-
反斜線 ("\")
-
左大括弧 ("{")
-
無法列印的 ASCII 字元 (128 - 255 十進位字元)
-
插入號 ("^")
-
右大括弧 ("}")
-
百分比字元 ("%")
-
重音符號/反引號 ("`")
-
右方括號 ("]")
-
問號
-
「大於」符號 (">")
-
左方括號 ("[")
-
波狀符號 ("~")
-
「小於」符號 ("<")
-
井字號 ("#")
-
垂直分隔號/縱線字元 ("|")
XML 相關物件金鑰限制條件
根據行尾處理 XML 標準
' 作為
'
” 作為
"
& 作為
&
< 作為
<
> 作為
>
\r 作為
或
\n 作為
或

下列範例說明了如何使用 XML 實體程式碼作為歸位字元的替代。此 DeleteObjects
請求刪除具有 key
參數的物件:/some/prefix/objectwith\rcarriagereturn
(其中 \r 是歸位字元)。
<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Object> <Key>/some/prefix/objectwith carriagereturn</Key> </Object> </Delete>