POST上傳
更新時間 2023-12-14 17:42:22
最近更新時間: 2023-12-14 17:42:22
分享文章
接口功能
此接口用于通過HTML表單上傳的方式將對象上傳到指定的存儲桶Bucket中。
接口約束
提交表單的URL為Bucket域名,不需要在URL中指定Object。即請求行是POST / ,不能寫為POST /ObjectName 。
請求URI
POST /v2/{bucketName}
路徑參數
| 參數 | 是否必填 | 參數類型 | 說明 | 示例 |
|---|---|---|---|---|
| bucketName | 是 | String | 桶名稱 | testBucket |
Query參數
無
請求參數
請求頭header參數
| 參數 | 是否必填 | 參數類型 | 說明 | 示例 |
|---|---|---|---|---|
| Content-Type | 是 | String | Post操作提交表單編碼必須為multipart/form-data,即Header中Content-Type為multipart/form-data;boundary=xxxxxx的形式。 |
請求體body參數
| 參數 | 是否必填 | 參數類型 | 說明 | 示例 | 下級對象 |
|---|---|---|---|---|---|
| key | 是 | String | 上傳Object的名稱。如果名稱包含路徑,例如cts/1.jpg,則會自動創建相應的文件夾。 | 1.jpg | |
| AWSAccessKeyId | 否 | String | Bucket擁有者的AccessKey ID,當Bucket為非public-read-write或者提供了Policy(或Signature)表單域時,必須提供AWSAccessKeyId表單域。 | xSdKEhbPz************ | |
| Signature | 否 | String | 根據AccessKey Secret和Policy計算的簽名信息,驗證該簽名信息從而驗證該Post請求的合法性。注意: 當Bucket為非public-read-write或者提供了AWSAccessKeyId(或Policy)表單域時,必須提供Signature表單域,同時表單域的值對大小寫敏感,但是表單域對大小寫不敏感。 | ||
| policy | 否 | String | Policy規定了請求表單域的合法性,是一段經過UTF-8和Base64編碼的JSON文本,不包含Policy表單域的請求被認為是匿名請求,并只能訪問public-read-write的Bucket, 當Bucket為非public-read-write或者提供了AccessKeyId(或Signature)表單域時,必須提供Policy表單域。 | ||
| acl | 否 | String | 在文件表單域中指定Object的訪問權限。取值: private,public-read, public-read-write authenticated-read, bucket-owner-read, bucket-owner-full-control。默認private。 | private | |
| x-amz-meta- | 否 | String | 用戶指定的user meta值。 | x-amz-meta-location | |
| Cache-Control | 否 | String | 指定該對象被下載時網頁的緩存行為。 | 請參見RFC 2616 | |
| Content-Type | 否 | String | 文件類型。 | image/jpeg | |
| Content-Disposition | 否 | String | 指定該對象被下載時的名稱。 | 請參見RFC 2616 | |
| Content-Encoding | 否 | String | 指定該對象被下載時的內容編碼格式。 | 請參見RFC 2616 | |
| Expires | 否 | String | 過期時間。 | 請參見RFC 2616 | |
| success-action-redirect | 否 | String | 上傳成功后客戶端跳轉到的URL。如果未指定該表單域,返回結果由success-action-status表單域指定。如果上傳失敗,返回錯誤碼,并不進行跳轉。 | ||
| success-action-status | 否 | String | 未指定success-action-redirect表單域時,該表單域指定了上傳成功后返回給客戶端的狀態碼。 有效值:200、201、204(默認)。其中 200或者204,返回一個空文檔和相應的狀態碼, 201,返回一個XML文件和201狀態碼,如果未設置或者設置為一個非法值,返回一個空文檔和204狀態碼。注:如果設置為null則返回400。 | 201 | |
| file | 是 | String | 文件或者文本內容。一次只能上傳一個文件。注意:file必須為最后一個表單域。 |
響應參數
| 參數 | 是否必填 | 參數類型 | 說明 | 示例 | 下級對象 |
|---|---|---|---|---|---|
| PostResponse | 是 | Array of Objects | 保存Post請求結果,此響應參數只有在返回狀態碼為201的時候,才返口。 | PostResponse |
表 PostResponse
| 參數 | 是否必填 | 參數類型 | 說明 | 示例 | 下級對象 |
|---|---|---|---|---|---|
| Bucket | 是 | String | bucket的名稱。 | ||
| Key | 是 | String | 對象的名稱。 | ||
| Location | 是 | String | 新創建的Object的URL。 |
請求示例
POST /v2/testBucket HTTP/1.1
請求頭header
Host: Bucgdoss.xstore.daliqc.cn
Date: Wed, 28 Oct 2023 09:32:00 GMT
Content-Type: multipart/form-data;boundary=xxxxxx
Content-Length:xxx
請求體body
Content-Disposition: form-data; name="key"
key
--xxxxxx
Content-Disposition: form-data; name="success_action_status"
200
---xxxxxx
Content-Disposition: form-data; name="AWSAccessKeyId"
67CF9530006ee252****
---xxxxxx
Content-Disposition: form-data; name="policy"
XXX1dfQ==
---xxxxxx
Content-Disposition: form-data; name="Signature"
CToYNv66bsee20+dcGKw5x2P****
---xxxxxx
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain
file content
---xxxxxx
響應示例
HTTP/1.1 200 OK
x-amz-request-id: tx00000000000000000****
Date: Thu, 15 Sep 2022 08:36:33 GMT
Connection: keep-alive
狀態碼
| 狀態碼 | 錯誤碼 | 描述 |
|---|---|---|
| 200 | 操作成功。 | |
| 400 | InvalidArgument | 缺少特定參數或者參數不合法。 |
| 403 | AccessDenied | 用戶沒有權限執行操作。 |
| 404 | NoSuchBucket | 操作指定的桶不存在。 |
| 404 | NoSuchKey | key對應的對象不存在。 |