

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Lightsail 物件儲存貯體的索引鍵名稱
<a name="understanding-bucket-object-key-names-in-amazon-lightsail"></a>

您上傳至儲存貯體的檔案會儲存為 Amazon Lightsail 物件儲存服務中的物件。物件索引鍵 (或索引鍵名稱) 可唯一識別存放於儲存貯體中的物件。本指南解釋了組成儲存貯體資料夾結構 (透過 Lightsail 主控台檢視) 的索引鍵名稱和索引鍵名稱字首的概念。如需有關儲存貯體的詳細資訊，請參閱[物件儲存](buckets-in-amazon-lightsail.md)。

## 鍵值名稱
<a name="bucket-object-key-names"></a>

Lightsail 物件儲存服務資料模型採用單層式結構，而不是如您在檔案系統中看到的階層結構。沒有分階層的資料夾和子資料夾。但您可以使用索引鍵名稱字首以及分隔符號來推斷邏輯階層。Lightsail 主控台會使用索引鍵名稱字首以資料夾結構來顯示物件。

假設您的儲存貯體具有四個物件，其物件索引鍵如下：
+ `Development/Projects.xls`
+ `Finance/statement1.pdf`
+ `Private/taxdocument.pdf`
+ `to-dos.doc`

Lightsail 主控台會使用索引鍵名稱字首 (`Development/`、`Finance/` 和 `Private/`) 以及分隔符號 (`/`)，來呈現資料夾結構。`to-dos.doc` 索引鍵名稱沒有字首，因此其物件會直接在儲存貯體的根層級顯示。如果您在 Lightsail 主控台中瀏覽至 `Development/` 資料夾，您會看到 `Projects.xls` 物件。在 `Finance/` 資料夾中，您會看到 `statement1.pdf` 物件，而在 `Private/` 資料夾中，則會看到 `taxdocument.pdf` 物件。

Lightsail 主控台支援透過作為索引鍵名稱的索引鍵名稱字首和分隔符號值來建立零位元組物件，以建立資料夾。這些資料夾物件不會出現在主控台中。但是，這些物件的行為就如同任何其他物件。您可以使用 Amazon S3 API、 AWS Command Line Interface (AWS CLI) 或 AWS SDKs來檢視和操作它們。

## 物件索引鍵命名準則
<a name="object-key-naming-guidelines"></a>

您可以在物件索引鍵名稱中使用任何 UTF-8 字元。但是，在索引鍵名稱中使用特定字元可能對某些應用程式和通訊協定造成問題。下列準則可協助您提高與 DNS、網頁適用字元、XML 剖析器及其他 API 的合規。

### 安全字元
<a name="w2aac59c37b7b5"></a>

下列字元集通常可安心用於索引鍵名稱中。
+ 英數字元
  + 0-9
  + a-z
  + A-Z
+ 特殊字元
  + 正斜線 (`/`)
  + 驚嘆號 (`!`)
  + 連字號 (`-`)
  + 底線 (`_`)
  + 句號 (`.`)
  + 星號 (`*`)
  + 單引號 (`'`)
  + 左括號 (`(`)
  + 右括號 (`)`)

有效的物件索引鍵名稱範例如下：
+ `4my-organization`
+ `my.great_photos-2014/jan/myvacation.jpg`
+ `videos/2014/birthday/video1.wmv`

**重要**  
如果物件索引鍵名稱以一個句號 (.) 或兩個句號 (..) 結尾，您即無法使用 Lightsail 主控台來下載物件。若要下載金鑰名稱結尾為一或兩個句點的物件，您必須使用 Amazon S3 API AWS CLI和 AWS SDKs。如需詳細資訊，請參閱[下載儲存貯體物件](amazon-lightsail-downloading-bucket-objects.md)。

### 可能需要特殊處理的字元
<a name="asdf"></a>

索引鍵名稱中的下列字元可能需要額外的程式碼處理，且有可能需要編碼為 URL 或是以十六進位參考。其中一部分是您的瀏覽器可能無法處理的不可列印字元，這些字元也需要特殊處理：
+ ＆ 符號 ("`&`")
+ 貨幣符號 ("`$`")
+ ASCII 字元範圍：00 - 1F 十六進位 (0 - 31 十進位) 與 7F (127 十進位)
+ @ 符號 ("`@`")
+ 等號 ("`=`")
+ 分號 ("`;`")
+ 冒號 ("`:`")
+ 加號 ("`+`")
+ 空格 - 在某些情況下，可能會遺失大量連續空格 (特別是多個空格)
+ 逗號 ("`,`")
+ 問號 ("`?`")

### 需要避免的字元
<a name="key-name-characters-to-avoid"></a>

請避免在索引鍵名稱中使用下列字元，因為這些字元需要經過大量的特殊處理，才能在所有應用程式之間達到一致。
+ 反斜線 ("`\`")
+ 左大括弧 ("`{`")
+ 無法列印的 ASCII 字元 (128 - 255 十進位字元)
+ 插入號 ("`^`")
+ 右大括弧 ("`}`")
+ 百分比字元 ("`%`")
+ 重音符號/反引號 ("```")
+ 右方括號 ("`]`")
+ 問號
+ 「大於」符號 ("`>`")
+ 左方括號 ("`[`")
+ 波狀符號 ("`~`")
+ 「小於」符號 ("`<`")
+ 井字號 ("`#`")
+ 垂直分隔號/縱線字元 ("`|`")

## XML 相關物件索引鍵限制條件
<a name="xml-object-key-constraints"></a>

根據[行尾處理 XML 標準](https://www.w3.org/TR/REC-xml/#sec-line-ends)的規定，所有 XML 文字都會標準化，以便單一歸位字元 (ASCII 碼 13) 和後跟換行字元的歸位字元 (ASCII 碼 10) 被單一換行字元取代。為了確保在 XML 請求中正確剖析物件索引鍵，歸位字元和其他特殊字元插入 XML 標籤時，[必須用其對等的 XML 實體程式碼取代](https://www.w3.org/TR/xml/#syntax)。以下是此類特殊字元及其對等實體程式碼的清單：
+ `'` 作為 `&apos;`
+ `”` 作為 `&quot;`
+ `&` 作為 `&amp;`
+ `<` 作為 `&lt;`
+ `<` 作為 `&gt;`
+ `\r` 作為 `&#13;` 或 `&#x0D;`
+ `\n` 作為 `&#10;` 或 `&#x0A;`

下列範例說明了如何使用 XML 實體程式碼作為歸位字元的替代。此 `DeleteObjects` 請求刪除具有 `/some/prefix/objectwith\rcarriagereturn` 索引鍵參數的物件：(其中 \$1r 是歸位字元)。

```
<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
      <Object>
        <Key>/some/prefix/objectwith&#13;carriagereturn</Key>
      </Object>
    </Delete>
```