接口功能介绍
此接口用于通过HTML表单上传的方式将对象上传到指定的存储空间bucket中。
接口约束
提交表单的URL为Bucket域名,不需要在URL中指定Object。即请求行是POST / ,不能写为POST /ObjectName 。
URI
POST /{bucketName}
路径参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
bucketName | 是 | String | 桶名称 | testBucket |
Query参数
无
请求参数
请求头header参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
Content-Type | 是 | String | Post操作提交表单编码必须为multipart/form-data,即Header中Content-Type为multipart/form-data;boundary=xxxxxx的形式 | |
Authorization | 是 | String | 用于验证请求合法性的认证信息 |
请求体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 /testBucket HTTP/1.1
请求头header
Host: Bucgdoss.xstore.ctyun.cn
Date: Wed, 28 Oct 2023 09:32:00 GMT
Content-Type: multipart/form-data;boundary=xxxxxx
Content-Length:xxx
Authorization: authorization string
请求体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对应的对象不存在 |
错误码
请参考 请求错误码(原生接口)。