使用字首整理物件 - Amazon Simple Storage Service

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

使用字首整理物件

您可以使用字首來整理儲存在 Amazon S3 儲存貯體中的資料。字首是物件索引鍵名稱開頭的字元字串。字首可以是任意長度,以物件索引鍵名稱的最大長度 (1,024 個位元組) 為準。您可以將字首視為以類似於目錄的方式組織資料的一種方式。但是,字首不是目錄。

按字首搜尋會將結果限制為僅以指定字首為開頭的那些索引鍵。分隔符號會導致清單操作將共用常見字首的所有金鑰彙總至單一摘要清單結果。

字首與分隔符號參數的目的,在於協助您以階層方式整理以及瀏覽金鑰。若要執行這項操作,請先為您的儲存貯體選取一個在任何預期的金鑰名稱中都不會出現的分隔符號,例如斜線 (/)。您可以使用另一個字元作為分隔符號。斜線 (/) 字元沒有唯一性,是常見的字首分隔符號。接下來,串連所有包含的階層層級,並以分隔符號分隔每個層級,藉此建構您的金鑰名稱。

例如,如果您存放城市的相關資訊,可能自然而然地會先依洲別、國家/地區,然後再依省/市或州來整理這些城市。因為這些名稱一般不包含標點符號,所以您可以使用斜線 (/) 作為分隔符號。下列範例使用斜線 (/) 分隔符號。

  • Europe/France/Nouvelle-Aquitaine/Bordeaux

  • North America/Canada/Quebec/Montreal

  • 北美洲//華盛頓/貝爾维尤 USA

  • 北美洲//華盛頓/西雅圖 USA

如果您以這種方式存放全球每個城市的資料,會很難管理一般金鑰的命名空間。利用清單作業使用 PrefixDelimiter,您就可以使用已建立的階層來列出資料。例如,要列出中的所有狀態USA,請設置Delimiter='/'Prefix='North America/USA/'。若要列出您在加拿大擁有資料的所有省份,請設定 Delimiter='/'Prefix='North America/Canada/'

如需詳細了解分隔符號、字首和巢狀資料夾,請參閱字首與巢狀資料夾的差異

使用字首和分隔符號列出物件

如果發出具有分隔符號的清單要求,可讓您只瀏覽階層中的某一個層級,而略過巢狀於更深層級的金鑰 (可能有數百萬個) 並加以彙總。例如,假設您有一個值區 (DOC-EXAMPLE-BUCKET) 使用下列按鍵:

sample.jpg

photos/2006/January/sample.jpg

photos/2006/February/sample2.jpg

photos/2006/February/sample3.jpg

photos/2006/February/sample4.jpg

此範本儲存貯體在根層級只有 sample.jpg 物件。若只要列出值區中的根層級物件,請在值區上傳送要GET求,並加上斜線 (/) 分隔符號字元。Amazon S3 會在回應中傳回 sample.jpg 物件金鑰,因為它並未包含 / 分隔符號字元。其他所有金鑰則包含此分隔符號字元。Amazon S3 會將這些索引鍵分組,並傳回字首值為 photos/ 的單一 CommonPrefixes 元素,這是從這些索引鍵開頭到第一次出現指定的分隔符號為止的子字串。

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>DOC-EXAMPLE-BUCKET</Name> <Prefix></Prefix> <Marker></Marker> <MaxKeys>1000</MaxKeys> <Delimiter>/</Delimiter> <IsTruncated>false</IsTruncated> <Contents> <Key>sample.jpg</Key> <LastModified>2011-07-24T19:39:30.000Z</LastModified> <ETag>&quot;d1a7fb5eab1c16cb4f7cf341cf188c3d&quot;</ETag> <Size>6</Size> <Owner> <ID>75cc57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID> <DisplayName>displayname</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> <CommonPrefixes> <Prefix>photos/</Prefix> </CommonPrefixes> </ListBucketResult>

如需以程式設計方式列出物件索引鍵的詳細資訊,請參閱「以程式設計方式列出物件索引鍵」。