華為云計算 云知識 列舉桶內(nèi)對象ListObjects
列舉桶內(nèi)對象ListObjects

 

接口說明

對桶擁有讀權(quán)限的用戶可以執(zhí)行獲取桶內(nèi)對象列表的操作。

如果用戶在請求的URI里只指定了桶名,即GET /BucketName,則返回信息中會包含桶內(nèi)部分或所有對象的描述信息(一次最多返回1000個對象信息);如果用戶還指定了prefix、marker、max-keys、delimiter參數(shù)中的一個或多個,則返回的對象列表將按照如表1所示規(guī)定的語義返回指定的對象。

URL
GET  https://obs.cn-north-4.myhuaweicloud.com/ 
請求參數(shù)
名稱 類型 IN 必選 描述
Authorization
 
string header

請求消息中可帶的簽名信息。

Date
 
string header

請求發(fā)起端的日期和時間,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默認(rèn)值:無。 條件:如果消息頭中帶了x-obs-date字段,則可以不帶該字段,其他情況下必選。

bucket_name
 
string query

請求的桶名稱。

prefix
 
string query

列舉以指定的字符串prefix開頭的對象。

marker
 
string query

列舉桶內(nèi)對象列表時,指定一個標(biāo)識符,從該標(biāo)識符以后按字典順序返回對象列表。

max-keys
 
integer query

指定返回的最大對象數(shù),返回的對象列表將是按照字典順序的最多前max-keys個對象,范圍是[1,1000],超出范圍時,按照默認(rèn)的1000進行處理。

delimiter
 
string query

將對象名進行分組的分隔符。如果指定了prefix,從prefix到第一次出現(xiàn)delimiter間具有相同字符串的對象名會被分成一組,形成一條CommonPrefixes;如果沒有指定prefix,從對象名的首字符到第一次出現(xiàn)delimiter間具有相同字符串的對象名會被分成一組,形成一條CommonPrefixes。

例如,桶中有3個對象,分別為abcd、abcde、bbcde。如果指定delimiter為d,prefix為a,abcd、abcde會被分成一組,形成一條前綴為abcd的CommonPrefixes;如果只指定delimiter為d,abcd、abcde會被分成一組,形成一條前綴為abcd的CommonPrefixes,而bbcde會被單獨分成一組,形成一條前綴為bbcd的CommonPrefixes。

key-marker
 
string query

列舉對象時的起始位置。 有效值:上次請求返回體的NextKeyMarker值

version-id-marker
 
string query

本參數(shù)只適用于多版本例舉場景

與請求中的key-marker配合使用,返回的對象列表將是按照字典順序排序后在該標(biāo)識符以后的對象(單次返回最大為1000個)。如果version-id-marker不是key-marker對應(yīng)的一個版本號,則該參數(shù)無效。

有效值:對象的版本號,即上次請求返回體的NextVersionIdMarker值

encoding-type
 
string query

對響應(yīng)中的部分元素進行指定類型的編碼。如果Delimiter、Marker(或KeyMarker)、Prefix、NextMarker(或NextKeyMarker)和Key包含xml 1.0標(biāo)準(zhǔn)不支持的控制字符,可通過設(shè)置encoding-type對響應(yīng)中的Delimiter、Marker(或KeyMarker)、Prefix(包括CommonPrefixes中的Prefix)、NextMarker(或NextKeyMarker)和Key進行編碼。

可選值:url

返回參數(shù)
返回碼: 200

成功響應(yīng)消息

名稱 類型 必選 描述
Content-Length
 
string

響應(yīng)消息體的字節(jié)長度。

Connection
 
string

指明與服務(wù)器的連接是長連接還是短連接。

Date
 
string

OBS系統(tǒng)響應(yīng)的時間。

ETag
 
string

對象的base64編碼的128位MD5摘要。ETag是對象內(nèi)容的唯一標(biāo)識,可以通過該值識別對象內(nèi)容是否有變化。比如上傳對象時ETag為A,下載對象時ETag為B,則說明對象內(nèi)容發(fā)生了變化。實際的ETag是對象的哈希值。ETag只反映變化的內(nèi)容,而不是其元數(shù)據(jù)。上傳的對象或拷貝操作創(chuàng)建的對象,通過MD5加密后都有唯一的ETag。如果通過多段上傳對象,則無論加密方法如何,MD5會拆分ETag,此類情況ETag就不是MD5的摘要。

x-obs-id-2
 
string

幫助定位問題的特殊符號。

x-obs-request-id
 
string

由OBS創(chuàng)建來唯一確定本次請求的值,可以通過該值來定位問題。

x-obs-bucket-type
 
string

通過此消息頭明確獲取的列表內(nèi)容。

取值: OBJECT:獲取所有桶列表。 POSIX:獲取所有并行文件系統(tǒng)列表。 不帶此消息頭則獲取所有桶和并行文件系統(tǒng)列表。

名稱 類型 必選 描述
Contents
 
Contents object

對象的元數(shù)據(jù)信息。

CommonPrefix
 
string

請求中帶delimiter參數(shù)時,返回消息帶CommonPrefixes分組信息。

Delimiter
 
string

請求中攜帶的delimiter參數(shù)。

EncodingType
 
string

對響應(yīng)中的部分元素進行指定類型的編碼。如果請求中設(shè)置了encoding-type,那響應(yīng)中的Delimiter、Marker、Prefix(包括CommonPrefixes中的Prefix)、NextMarker和Key會被編碼。

IsTruncated
 
boolean

表明是否本次返回的ListBucketResult結(jié)果列表被截斷。“true”表示本次沒有返回全部結(jié)果;“false”表示本次已經(jīng)返回了全部結(jié)果。

Marker
 
string

列舉對象時的起始位置標(biāo)識符。

NextMarker
 
string

如果本次沒有返回全部結(jié)果,響應(yīng)請求中將包含此字段,用于標(biāo)明本次請求列舉到的最后一個對象。后續(xù)請求可以指定Marker等于該值來列舉剩余的對象。

MaxKeys
 
string

列舉時最多返回的對象個數(shù)。

Name
 
string

本次請求的桶名。

Prefix
 
string

對象名的前綴,表示本次請求只列舉對象名能匹配該前綴的所有對象。

200 Contents
名稱 類型 必選 描述
Owner
 
Owner object

桶擁有者信息,包含租戶ID。

ETag
 
string

對象的base64編碼的128位MD5摘要。ETag是對象內(nèi)容的唯一標(biāo)識,可以通過該值識別對象內(nèi)容是否有變化。比如上傳對象時ETag為A,下載對象時ETag為B,則說明對象內(nèi)容發(fā)生了變化。實際的ETag是對象的哈希值。ETag只反映變化的內(nèi)容,而不是其元數(shù)據(jù)。上傳的對象或拷貝操作創(chuàng)建的對象,通過MD5加密后都有唯一的ETag。(當(dāng)對象是服務(wù)端加密的對象時,ETag值不是對象的MD5值,而是通過服務(wù)端加密計算出的唯一標(biāo)識。)

Type
 
string

對象類型,非Normal對象時返回。

Key
 
string

對象名。

LastModified
 
string

對象最近一次被修改的時間(UTC時間)。

Size
 
string

對象的字節(jié)數(shù)。

StorageClass
 
string

對象的存儲類型。

200 Contents.Owner
名稱 類型 必選 描述
ID
 
string

用戶的DomainID(帳號ID)。

返回碼: 400

請求失敗響應(yīng)消息。

名稱 類型 必選 描述
Code
 
string

錯誤響應(yīng)消息體XML中錯誤響應(yīng)對應(yīng)的HTTP消息返回碼,具體的錯誤碼請參見錯誤碼-表2。

Message
 
string

錯誤響應(yīng)消息體XML中具體錯誤更全面、詳細(xì)的英文解釋,具體的錯誤消息請參見錯誤碼-表2。

RequestId
 
string

本次錯誤請求的請求ID,用于錯誤定位。

HostId
 
string

返回該消息的服務(wù)端ID。

Resource
 
string

該錯誤相關(guān)的桶或?qū)ο筚Y源。

請求示例
示例 1
 
"/"
 
"GET / HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 02:28:25 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:KiyoYze4pmRNPYfmlXBfRTVxt8c=\n"
返回示例
返回碼:200

成功響應(yīng)消息

示例 1
 
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016435D34E379ABD93320CB9 x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAA BCS XiN7GPL/yXM6OSBaYCUV1zcY5OelWp Content-Type: application/xml Date: WED, 01 Jul 2015 02:23:30 GMT Content-Length: 586 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ListBucketResult xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> <Name>examplebucket</Name> <Prefix/> <Marker/> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>object001</Key> <LastModified>2015-07-01T00:32:16.482Z</LastModified> <ETag>"2fa3bcaaec668adc5da177e67a122d7c"</ETag> <Size>12041</Size> <Owner> <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> </Owner> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult>
錯誤碼
請參考 錯誤碼說明。