表单上传 - PostFile
简介
表单上传文件
说明:适合使用浏览器的场景并且上传文件内容可以在一次HTTP请求完成,并且所有PUT上传支持的参数都可以在表单上传中指定。
定义
句法(Syntax):
POST / HTTP/1.1
Host: <bucket_name>.cn-bj.ufileos.com
Content-Type: multipart/form-data; boundary=----UCloudPOSTFormTestBoundary
Content-Length: <length>
<file_content>
请求参数(Request Parameters)
请求头(Request Headers)
Name | Type | Description | Required |
---|---|---|---|
Content-Type | String | 待上传文件的类型,必须为multipart/form-data | Yes |
Content-Length | Integer | 请求body的长度 | Yes |
Content-MD5 | String | 文件内容的MD5摘要,为了保证数据的完整性,建议要配置Content-MD5并检查一致性 | No |
X-Ufile-Storage-Class | String | 文件存储类型,分别是标准、低频、归档,对应有效值:STANDARD, IA, ARCHIVE | No |
X-Ufile-Meta- * | String | US3中规定所有以X-Ufile-Meta-为前缀的参数视为用户自定义元数据(User Meta),比如x-ufile-meta-location。一个文件可以有多个类似的参数,但所有的User Meta总大小不能超过8KB。这些User Meta信息会在GetFile或者HeadFile的时候在HTTP头部中返回。 | No |
请求元素(Request Elements)
Name | Type | Description | Required |
---|---|---|---|
ObjectName | String | Bucket中文件的名称 | Yes |
Authorization | String | 上传请求的授权签名,API 签名算法 | Yes |
Content-Type | String | 上传文件本身的MimeType | No |
注意: - 以上参数是在form表单中的参数。- POST 表单上传时签名使用的是 form 表单参数的 Content-Type(即上传文件本身的 mimetype), 而非本次 HTTP 请求的 Content-Type。
响应(Responses)
响应头(Response Headers)
Name | Type | Description |
---|---|---|
Content-Type | String | 响应body部分的类型 |
Content-Length | Integer | 响应body部分的大小 |
ETag | String | 完成上传的文件的哈希值 |
X-SessionId | String | 请求失败时返回本次请求的会话Id |
响应元素(Response Elements)
Name | Type | Description |
---|---|---|
RetCode | Integer | 执行失败时的错误代码 |
ErrMsg | String | 执行失败时的错误消息 |
注意: 成功执行只会返回HTTP 200回应,不带body数据.
示例
请求示例(Example Request):
POST / HTTP/1.1
Host: <bucket_name>.cn-bj.ufileos.com
Content-MD5: c5371fe3624d438cd8a59420a3221978
Content-Type: multipart/form-data; boundary=----UCloudPOSTFormBoundary
------UCloudPOSTFormBoundary
Content-Disposition: form-data; name="FileName"
demofile
------UCloudPOSTFormBoundary
Content-Disposition: form-data; name="Authorization"
demouser@ucloud.cn13424346821929713944:S5FVD2w613MKb/hisjaqHdjvn9U=
------UCloudPOSTFormBoundary
Content-Disposition: form-data; name="file"; filename="MyFilename.jpg"
Content-Type: image/jpeg
<file_content>
------UCloudPOSTFormBoundary--
响应示例(Example Response):
HTTP/1.1 200 OK
Content-Length: 0
ETag: "AQAAABP9DJdoo2X0hKyax2pVTLQPaVzH"