閱讀668 返回首頁    go 小米6


InitiateMultipartUpload__關於MultipartUpload的操作_API 參考_對象存儲 OSS-阿裏雲

使用Multipart Upload模式傳輸數據前,必須先調用該接口來通知OSS初始化一個Multipart Upload事件。該接口會返回一個OSS服務器創建的全局唯一的Upload ID,用於標識本次Multipart Upload事件。用戶可以根據這個ID來發起相關的操作,如中止Multipart Upload、查詢Multipart Upload等。

請求語法

POST /ObjectName?uploads HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT date
Authorization: SignatureValue

請求參數(Request Parameters)

Initiate Multipart Upload時,可以通過encoding-type對返回結果中的Key進行編碼。

名稱 描述
encoding-type 指定對返回的Key進行編碼,目前支持url編碼。Key使用UTF-8字符,但xml 1.0標準不支持解析一些控製字符,比如ascii值從0到10的字符。對於Key中包含xml 1.0標準不支持的控製字符,可以通過指定encoding-type對返回的Key進行編碼。
數據類型:字符串
默認值:無,可選值:url

請求Header

名稱 描述
Cache-Control 指定該Object被下載時的網頁的緩存行為;更詳細描述請參照RFC2616
類型:字符串
默認值:無
Content-Disposition 指定該Object被下載時的名稱;更詳細描述請參照RFC2616
類型:字符串
默認值:無
Content-Encoding 指定該Object被下載時的內容編碼格式;更詳細描述請參照RFC2616
類型:字符串
默認值:無
Expires 過期時間(milliseconds);更詳細描述請參照RFC2616
類型:整數
默認值:無
x-oss-server-side-encryption 指定上傳該Object每個part時使用的服務器端加密編碼算法,OSS會對上傳的每個part采用服務器端加密編碼進行存儲。
類型:字符串
合法值:AES256

響應元素(Response Elements)

名稱 描述
Bucket 初始化一個Multipart Upload事件的Bucket名稱。
類型:字符串
父節點:InitiateMultipartUploadResult
InitiateMultipartUploadResult 保存Initiate Multipart Upload請求結果的容器。
類型:容器
子節點:Bucket, Key, UploadId
父節點:None
Key 初始化一個Multipart Upload事件的Object名稱。
類型:字符串
父節點:InitiateMultipartUploadResult
UploadId 唯一標示此次Multipart Upload事件的ID。
類型:字符串
父節點:InitiateMultipartUploadResult
EncodingType 指明返回結果中編碼使用的類型。如果請求的參數中指定了encoding-type,那返回的結果會對Key進行編碼。
類型:字符串
父節點:容器

細節分析

  1. 該操作計算認證簽名的時候,需要加“?uploads”到CanonicalizedResource中。
  2. 初始化Multipart Upload請求,支持如下標準的HTTP請求頭:Cache-Control,Content- Disposition,Content-Encoding,Content-Type,Expires,以及以“x-oss-meta-”開頭的用戶自定義Headers。具體含義請參見PUT Object接口。
  3. 初始化Multipart Upload請求,並不會影響已經存在的同名object。
  4. 服務器收到初始化Multipart Upload請求後,會返回一個XML格式的請求體。該請求體內有三個元素:Bucket,Key和UploadID。請記錄下其中的UploadID,以用於後續的Multipart相關操作。
  5. 初始化Multipart Upload請求時,若設置了x-oss-server-side-encryption Header,則在響應頭中會返回該Header,並且在上傳的每個part時,服務端會自動對每個part進行熵編碼加密存儲,目前OSS服務器端隻支持256位高級加密標準(AES256),指定其他值會返回400和相應的錯誤提示:InvalidEncryptionAlgorithmError;在上傳每個part時不必再添加x-oss-server-side-encryption 請求頭,若指定該請求頭則OSS會返回400和相應的錯誤提示:InvalidArgument。

示例

請求示例:

POST /multipart.data?uploads HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 22 Feb 2012 08:32:21 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:/cluRFtRwMTZpC2hTj4F67AGdM4=

返回示例:

HTTP/1.1 200 OK
Content-Length: 230
Server: AliyunOSS
Connection: keep-alive
x-oss-request-id: 42c25703-7503-fbd8-670a-bda01eaec618
Date: Wed, 22 Feb 2012 08:32:21 GMT
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult xmlns=”https://doc.oss-cn-hangzhou.aliyuncs.com”>
    <Bucket> multipart_upload</Bucket>
    <Key>multipart.data</Key>
    <UploadId>0004B9894A22E5B1888A1E29F8236E2D</UploadId>
</InitiateMultipartUploadResult>

最後更新:2016-11-23 17:16:08

  上一篇:go GetSymlink__關於Object操作_API 參考_對象存儲 OSS-阿裏雲
  下一篇:go UploadPart__關於MultipartUpload的操作_API 參考_對象存儲 OSS-阿裏雲