Skip to Content

表单上传 - 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)

NameTypeDescriptionRequired
Content-TypeString待上传文件的类型,必须为multipart/form-dataYes
Content-LengthInteger请求body的长度Yes
Content-MD5String文件内容的MD5摘要,为了保证数据的完整性,建议要配置Content-MD5并检查一致性No
X-Ufile-Storage-ClassString文件存储类型,分别是标准、低频、归档,对应有效值:STANDARD, IA, ARCHIVENo
X-Ufile-Meta- *StringUS3中规定所有以X-Ufile-Meta-为前缀的参数视为用户自定义元数据(User Meta),比如x-ufile-meta-location。一个文件可以有多个类似的参数,但所有的User Meta总大小不能超过8KB。这些User Meta信息会在GetFile或者HeadFile的时候在HTTP头部中返回。No

请求元素(Request Elements)

NameTypeDescriptionRequired
ObjectNameStringBucket中文件的名称Yes
AuthorizationString上传请求的授权签名,API 签名算法Yes
Content-TypeString上传文件本身的MimeTypeNo

注意: - 以上参数是在form表单中的参数。- POST 表单上传时签名使用的是 form 表单参数的 Content-Type(即上传文件本身的 mimetype), 而非本次 HTTP 请求的 Content-Type。

响应(Responses)

响应头(Response Headers)

NameTypeDescription
Content-TypeString响应body部分的类型
Content-LengthInteger响应body部分的大小
ETagString完成上传的文件的哈希值
X-SessionIdString请求失败时返回本次请求的会话Id

响应元素(Response Elements)

NameTypeDescription
RetCodeInteger执行失败时的错误代码
ErrMsgString执行失败时的错误消息

注意: 成功执行只会返回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"