此操作用來返回Bucket中部分或者全部(最多1000)的Object信息。用戶可以在請求元素中設置選擇條件來獲取Bucket中的Object的子集。
請求語法
GET / HTTP/1.1
Host: BucketName.oos-cn.ctyunapi.cn
Date: date
Authorization: SignatureValue
請求參數
| 名稱 | 描述 | 是否必須 |
|---|---|---|
| BucketName | 存儲桶名稱。 類型:字符串。 |
是 |
| delimiter | 分隔符,一個用來對關鍵字們進行分組的字符。所有的關鍵字都包含delimiter和prefix間的相同子串,prefix之后第一個遇到delimiter的字符串都會加到一個叫CommonPrefix的組中。如果沒有特別定義prefix,所有的關鍵字都會被返回,但不會有CommonPrefix。delimiter 只支持”/”,不支持其他分隔符。 類型:字符串。 |
否 |
| marker | 分頁標識。還有需要返回的用戶時,上條響應結果中會返回該參數。查看未顯示項時,請求參數中需要攜帶此參數。 類型:字符串。 取值:與上條響應中返回的結果值相同。 |
否 |
| max-keys | 設置響應中最多返回的條數。如果存在超出您指定的返回項,則IsTruncated響應元素為true,表示需要再次發送請求查看未顯示的項。查看未顯示的項時,需要攜帶響應參數Marker的值。 類型:整型。 取值:1~1000,默認值為1000。 |
否 |
| prefix | 前綴用來限制返回的結果必須以這個前綴開始,可以通過前綴將bucket分為若干個組。 | 否 |
| encoding-type | 指定響應中Delimiter、Marker、Prefix、NextMarker、Key、CommonPrefixes.Prefix的編碼類型。如果Delimiter、Marker、Prefix、NextMarker、Key、CommonPrefixes.Prefix包含xml 1.0標準不支持的控制字符,可通過設置該參數對響應中的Delimiter、Marker、Prefix、NextMarker、Key、CommonPrefixes.Prefix進行編碼。 類型:字符串。 取值:url,字母不區分大小寫。 |
否 |
響應結果
名稱 描述 ListBucketResult 包含響應的容器。
類型:容器。
子節點:Name、Prefix、Marker、MaxKeys、EncodingType、Delimiter、IsTruncated、NextMarker、Contents、CommonPrefixes
Name Bucket的名稱。
類型:字符串。
父節點:ListBucketResult。
Prefix 關鍵字以特定的前綴開始。
類型:字符串。
父節點:ListBucketResult。
Marker 標記從哪個位置開始羅列出bucket中的object。
類型:字符串。
父節點:ListBucketResult。
MaxKeys 響應中最多返回的條數。
類型:字符串。
父節點:ListBucketResult。
EncodingType Delimiter、Marker、Prefix、NextMarker、Key的編碼類型。
類型:字符串。
父節點:ListBucketResult。
Delimiter 分隔符。
類型:字符串。
父節點:ListBucketResult。
IsTruncated 通過是(true)或否(false)來表示返回的結果是否為所有要求的結果。
類型:Boolean。
父節點:ListBucketResult。
NextMarker 若IsTruncated返回true,用戶可以將NextMarker的值設置為下次請求中的marker參數,以便獲取后續文件。
類型:字符串。
父節點:ListBucketResult。
Contents 每個Object返回的元數據。
類型:容器。
父節點:ListBucketResult。
子節點:Key,LastModified,Etag,Size,StorageClass。
Key 文件的關鍵字。
類型:字符串。
父節點:Contents。
LastModified 記錄的文件最后一次被修改的日期和時間。
類型:字符串。
父節點:Contents。
ETag 通過MD5的方式計算出標簽,ETag主要用來反映文件內容的信息發生了改變,并不反映元數據的變化。
類型:字符串。
父節點:Contents。
Size 記錄文件object的大小。
類型:字符串。
父節點:Contents。
StorageClass 存儲類型:
STANDARD:標準存儲。
STANDARD_IA:低頻訪問存儲。
類型:字符串。
父節點:Contents。
CommonPrefixes 當定義delimiter之后,返回結果中會包含CommonPrefixes,CommonPrefix中包含以prefix開頭,delimiter結束的字符串組合,比如prefix是note/,同時delimiter是斜杠(/),結果中的note/summer/july/lotus.jpg將返回note/summer/,其余結果將按照Maxkeys要求返回。
類型:容器。
父節點:ListBucketResult。
子節點:Prefix。
CommonPrefixes.Prefix 如果請求中不包含Prefix參數,那么這個元素只顯示那些在delimiter字符第一次出現之前的key的子字符串,且這些key不在響應的其它位置出現。
如果請求中包含Prefix參數,那么這個元素顯示在prefix之后,到第一次出現delimiter之間的子串。
類型:字符串。
父節點:CommonPrefixes。
請求示例1
GET?/?HTTP/1.1
Host:?docs.oos-cn.ctyunapi.cn
x-amz-content-sha256:?UNSIGNED-PAYLOAD
X-Amz-Date:?20200304T070632Z
Content-Type:?application/xml;?charset=utf-8
Authorization: SignatureValue
響應示例1
HTTP/1.1?200?OK
Date:?Wed,?04?Mar?2020?07:06:40?GMT
x-amz-request-id:?b13be3abf4db4af33eaaaeb5bdb5b7bd7c7e82727476787a7c
Content-Length:?538
Content-Type:?application/xml;?charset=utf-8?
Server:?CTYUN
?
<?xml?version="1.0"?encoding="UTF-8"?>
??<ListBucketResult?xmlns="//s3.amazonaws.com/docs/2006-03-01/">
???<Name>docs</Name>
???<Prefix></Prefix>
???<Marker></Marker>
???<MaxKeys>1000</MaxKeys>
???<EncodingType></EncodingType>
???<IsTruncated>false</IsTruncated>
???<Contents>
????<Key>1.png</Key>
????<LastModified>2020-03-04T07:04:48.135Z</LastModified>
????<ETag>"01fa001a4c65b834696c5e0049fd5004"</ETag>
????<Size>25348</Size>
????<StorageClass>STANDARD</StorageClass>
????<Owner>
???????<ID></ID>
???????<DisplayName></DisplayName>
????</Owner>
??</Contents>
</ListBucketResult>
使用請求變量的示例
假設數據庫中存儲數據如下所示:
docs/sample.pdf
docs/Ant/sample.doc
docs/Feb/sample2.doc
docs/Feb/sample3.doc
docs/Feb/sample4.doc
要查詢prefix為docs/,delimiter為/,同時marker為docs/F,max-keys為40的結果,請求頭為
GET?/?prefix=docs/&marker=docs/F&max-keys=40&delimiter=/?HTTP/1.1
Host:?docs.oos-cn.ctyunapi.cn
Date:?Mon,?03?Sep?2012?12:00:00?GMT
Authorization:?AWS?81ebc16ddc8d2af82c90:thdUi9VAkzhkniLj96JIrOPGi0g
返回的結果集為:
<ListBucketResult?xmlns="//oos-cn.ctyunapi.cn/docs/2012-09-03/">
<Name>docs</Name>
<Prefix>docs/</Prefix>
<Marker>docs/F</Marker>
<MaxKeys>40</MaxKeys>
<Delimiter>/</Delimiter>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>sample.pdf</Key>
<LastModified>2012-09-01T01:56:20.000Z</LastModified>
<ETag>"bf1d737a4d46a19f3bced6905cc8b902"</ETag>
<Size>142863</Size>
<Owner>
<ID>?</ID>
<DisplayName>?</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<CommonPrefixes>
<Prefix>Feb/</Prefix>
<Prefix>Ant/</Prefix>
</CommonPrefixes>
</ListBucketResult>