華為云計(jì)算 云知識(shí) 獲取對(duì)象內(nèi)容GetObject
獲取對(duì)象內(nèi)容GetObject

 

接口說明

GET操作從 對(duì)象存儲(chǔ) 下載對(duì)象。使用GET接口前,請(qǐng)確認(rèn)必須擁有對(duì)象的READ權(quán)限。如果對(duì)象Owner向匿名用戶授予READ訪問權(quán)限,則可以在不使用鑒權(quán)頭域的情況下訪問該對(duì)象。

服務(wù)端加密

如果客戶端的對(duì)象上傳時(shí),使用了客戶提供的加密密鑰進(jìn)行服務(wù)端加密,當(dāng)下載對(duì)象時(shí),同樣也必須在消息中提供密鑰。

多版本

默認(rèn)情況下,獲取的是最新版本的對(duì)象。如果最新版本的對(duì)象是刪除標(biāo)記,則返回對(duì)象不存在。如果要獲取指定版本的對(duì)象,請(qǐng)求可攜帶versionId消息參數(shù)。

歸檔存儲(chǔ)對(duì)象

如果要下載的對(duì)象是歸檔存儲(chǔ)類對(duì)象,由于對(duì)象存儲(chǔ)在存檔設(shè)備中,您必須先使用對(duì)象取回,然后才能下載該歸檔存儲(chǔ)對(duì)象。對(duì)象處于不同的取回狀態(tài)時(shí),給出不同響應(yīng):如果對(duì)象已取回,下載對(duì)象成功時(shí)需要返回x-obs-restore頭域指示取回失效時(shí)間。對(duì)未取回或正在取回的歸檔存儲(chǔ)對(duì)象發(fā)送下載請(qǐng)求時(shí),會(huì)返回錯(cuò)誤403 Forbidden。

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

請(qǐng)求消息中可帶的簽名信息。

Date
 
string header

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

Range
 
string header

獲取對(duì)象時(shí),獲取在Range范圍內(nèi)的對(duì)象內(nèi)容。如果Range不合法則忽略此字段獲取整個(gè)對(duì)象。

Range是一個(gè)范圍,它的起始值最小為0,最大為對(duì)象長(zhǎng)度減1。Range范圍的起始值為必填項(xiàng),如果Range只包含起始值,表示獲取起始值到對(duì)象長(zhǎng)度減1這個(gè)區(qū)間的對(duì)象內(nèi)容。

攜帶Range頭域后,響應(yīng)消息的ETag仍是對(duì)象的ETag,而不是Range范圍內(nèi)對(duì)象的ETag。

bytes=byte_range

示例1:bytes=0-4 示例2:bytes=1024 示例3:bytes=10-20,30-40(表示多個(gè)區(qū)間)

If-Modified-Since
 
string header

如果對(duì)象在請(qǐng)求中指定的時(shí)間之后有修改,則返回對(duì)象內(nèi)容;否則的話返回304(not modified)。

類型:符合http://www.ietf.org/rfc/rfc2616.txt規(guī)定格式的HTTP時(shí)間字符串。

If-Unmodified-Since
 
string header

如果對(duì)象在請(qǐng)求中指定的時(shí)間之后沒有修改,則返回對(duì)象內(nèi)容;否則的話返回412(precondition failed)。

類型:符合http://www.ietf.org/rfc/rfc2616.txt規(guī)定格式的HTTP時(shí)間字符串。

If-Match
 
string header

如果對(duì)象的ETag和請(qǐng)求中指定的ETag相同,則返回對(duì)象內(nèi)容,否則的話返回412(precondition failed)。

(ETag值,例:0f64741bf7cb1089e988e4585d0d3434。)

If-None-Match
 
string header

如果對(duì)象的ETag和請(qǐng)求中指定的ETag不相同,則返回對(duì)象內(nèi)容,否則的話返回304(not modified)。

(ETag值,例:0f64741bf7cb1089e988e4585d0d3434。)

x-obs-server-side-encryption-customer-algorithm
 
string header

SSE-C方式下使用該頭域,該頭域表示加密使用的算法。

示例:x-obs-server-side-encryption-customer-algorithm:AES256

約束:需要和x-obs-server-side-encryption-customer-key, x-obs-server-side-encryption-customer-key-MD5一起使用。

x-obs-server-side-encryption-customer-key
 
string header

SSE-C方式下使用該頭域,該頭域表示加密使用的密鑰。該密鑰用于解密對(duì)象。

示例:x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw=

約束:該頭域由256-bit的密鑰經(jīng)過base64-encoded得到,需要和x-obs-server-side-encryption-customer-algorithm,x-obs-server-side-encryption-customer-key-MD5一起使用。

x-obs-server-side-encryption-customer-key-MD5
 
string header

SSE-C方式下使用該頭域,該頭域表示加密使用的密鑰的MD5值。MD5值用于驗(yàn)證密鑰傳輸過程中沒有出錯(cuò)。

示例:x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

約束:該頭域由密鑰的128-bit MD5值經(jīng)過base64-encoded得到,需要和x-obs-server-side-encryption-customer-algorithm,x-obs-server-side-encryption-customer-key一起使用。

object_key
 
string path

通過此請(qǐng)求下載的對(duì)象名稱。

bucket_name
 
string query

桶名稱

response-content-type
 
string query

重寫響應(yīng)中的Content-Type頭。

response-content-language
 
string query

重寫響應(yīng)中的Content-Language頭。

response-expires
 
string query

重寫響應(yīng)中的Expires頭。

response-cache-control
 
string query

重寫響應(yīng)中的Cache-Control頭。

response-content-disposition
 
string query

重寫響應(yīng)中的Content-Disposition頭。

示例:response-content-disposition=attachment; filename*=utf-8''name1

下載對(duì)象重命名為“name1”,如果name1中存在中文,需要將中文進(jìn)行URL編碼。

response-content-encoding
 
string query

重寫響應(yīng)中的Content-Encoding頭。

versionId
 
string query

指定獲取對(duì)象的版本號(hào)。

x-image-process
 
string query

圖片處理服務(wù)。

示例:

命令方式:x-image-process=image/commands

樣式方式:x-image-process=style/stylename

詳見《圖片處理特性指南》

attname
 
string query

重寫響應(yīng)中的Content-Disposition頭。

示例:attname=name1

下載對(duì)象重命名為“name1”。

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

成功響應(yīng)消息。

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

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

Connection
 
string

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

Date
 
string

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

ETag
 
string

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

x-obs-id-2
 
string

幫助定位問題的特殊符號(hào)。

x-obs-request-id
 
string

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

x-obs-expiration
 
string

當(dāng)對(duì)象單獨(dú)設(shè)置了對(duì)象lifecycle,過期時(shí)間以對(duì)象lifecycle為準(zhǔn),該消息頭用expiry-date描述對(duì)象的詳細(xì)過期信息;如果對(duì)象沒有設(shè)置對(duì)象lifecycle,設(shè)置了桶級(jí)別lifecycle,過期時(shí)間以桶級(jí)別lifecycle為準(zhǔn),該消息頭用expiry-date和rule-id兩個(gè)鍵值對(duì)描述對(duì)象的詳細(xì)過期信息;否則不顯示該頭域。

x-obs-website-redirect-location
 
string

當(dāng)桶設(shè)置了Website配置,就可以設(shè)置對(duì)象元數(shù)據(jù)的這個(gè)屬性,Website接入點(diǎn)返回301重定向響應(yīng),將請(qǐng)求重定向到該屬性指定的桶內(nèi)的另一個(gè)對(duì)象或外部的URL。

x-obs-delete-marker
 
boolean

標(biāo)識(shí)對(duì)象是否是刪除標(biāo)記。如果不是,則響應(yīng)中不會(huì)出現(xiàn)該消息頭。

x-obs-version-id
 
string

對(duì)象的版本號(hào)。如果該對(duì)象無版本號(hào),則響應(yīng)中不會(huì)出現(xiàn)該消息頭。

x-obs-server-side-encryption
 
string

如果服務(wù)端加密是SSE-KMS方式,響應(yīng)包含該頭域。

x-obs-server-side-encryption-kms-key-id
 
string

如果服務(wù)端加密是SSE-KMS方式,響應(yīng)包含該頭域,該頭域表示主密鑰。 格式為: regionID:domainID(租戶ID):key/key_id

其中regionID是使用密鑰所屬region的ID;domainID是使用密鑰所屬租戶的租戶ID;key_id是本次加密使用的密鑰ID。

x-obs-server-side-encryption-customer-algorithm
 
string

如果服務(wù)端加密是SSE-C方式,響應(yīng)包含該頭域,該頭域表示解密使用的算法。

x-obs-server-side-encryption-customer-key-MD5
 
string

如果服務(wù)端加密是SSE-C方式,響應(yīng)包含該頭域,該頭域表示解密使用的密鑰的MD5值。

x-obs-object-type
 
string

對(duì)象為非Normal對(duì)象時(shí),會(huì)返回此頭域,可取值為:Appendable。

x-obs-next-append-position
 
integer

對(duì)象為Appendable對(duì)象時(shí),會(huì)返回此頭域。

名稱 類型 必選 描述
-
 
file  
返回碼: 400

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

名稱 類型 必選 描述
Code
 
string

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

Message
 
string

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

RequestId
 
string

本次錯(cuò)誤請(qǐng)求的請(qǐng)求ID,用于錯(cuò)誤定位。

HostId
 
string

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

Resource
 
string

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

請(qǐng)求示例
示例 1

下載整個(gè)對(duì)象

 
"GET /object01 HTTP/1.1"
 
"GET /object01 HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 04:24:33 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:Nxt SMS 0jaVxlLnxlO9awaMTn47s=\n"
示例 2

指定Range下載對(duì)象(下載對(duì)象單個(gè)區(qū)間內(nèi)容)

 
"GET /object01 HTTP/1.1"
 
"GET /object01 HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: Mon, 14 Sep 2020 09:59:04 GMT\nRange:bytes=20-30\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:mNPLWQMDWg30PTkAWiqJaLl3ALg=\n"
示例 3

指定Range下載對(duì)象(下載對(duì)象多個(gè)區(qū)間內(nèi)容)

 
"GET /object01 HTTP/1.1"
 
"GET /object01 HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: Mon, 14 Sep 2020 10:02:43 GMT\nRange:bytes=20-30,40-50\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:ZwM7Vk2d7sD9o8zRsRKehgKQDkk=\n"
示例 4

下載縮放圖片

 
"GET /example.jpg?x-image-process=image/resize,w_100 HTTP/1.1"
 
"GET /example.jpg?x-image-process=image/resize,w_100 HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 04:20:51 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:9Nsx45WjaVxlLnxlO9awasXn83N=\n"
示例 5

如果對(duì)象Etag值匹配則下載該對(duì)象

 
"GET /object01 HTTP/1.1"
 
"GET /object01 HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 04:24:33 GMT\nIf-Match: 682e760adb130c60c120da3e333a8b09\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=\n"
示例 6

在URL中攜帶簽名下載對(duì)象

 
"GET /object02?AccessKeyId=H4IPJX0TQTHTHEBQQCEC&Expires=1532688887&Signature=EQmDuOhaLUrzrzRNZxwS72CXeXM%3D HTTP/1.1"
 
"GET /object02?AccessKeyId=H4IPJX0TQTHTHEBQQCEC&Expires=1532688887&Signature=EQmDuOhaLUrzrzRNZxwS72CXeXM%3D HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: Fri, 27 Jul 2018 10:52:31 GMT\n"
示例 7

下載對(duì)象并重命名,使用response-content-disposition參數(shù)實(shí)現(xiàn)

 
"GET /object01?response-content-disposition=attachment; filename*=utf-8'name1 HTTP/1.1"
 
"GET /object01?response-content-disposition=attachment; filename*=utf-8''name1 HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 04:24:33 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=\n"
示例 8

下載對(duì)象并重命名,使用attname參數(shù)實(shí)現(xiàn)

 
"GET /object01?attname=name1 HTTP/1.1"
 
"GET /object01?attname=name1 HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 04:24:33 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s=\n"
SDK
點(diǎn)擊  對(duì)象存儲(chǔ)服務(wù)  (OBS) SDK, 下載SDK或查看SDK文檔。SDK的安裝、認(rèn)證方式等在SDK文檔中對(duì)應(yīng)語言類型的【使用】目錄下。
錯(cuò)誤碼
請(qǐng)參考 錯(cuò)誤碼說明。