表单上传 (HTML Form Upload)
Qiniu S3 API 服务支持客户端通过 HTML 表单 (Form) 直接上传对象 (Object) 到七牛云存储。使用 HTML 表单 (Form) 上传方式应用无需中间代理,既简化了应用开发的复杂度又降低了数据上传延时性。
传统 HTML Form 上传路径与七牛 S3 API 表单上传路径对比如下:
表单上传步骤
客户端 (浏览器) 访问应用服务上传页面
应用服务端返回包含上传信息 (policy) 的 HTML 表单 (Form)
客户端 (浏览器) 选择文件并上传
Qiniu S3 API 服务完成上传后根据客户端请求参数返回对应的响应
请求定义
POST /<BucketName> HTTP/1.1
Host: api-s3.qiniu.com
User-Agent: <UA>
Content-Length: <Integer>
Content-Type: multipart/form-data; boundary=12adaa1b4f
--12adaa1b4f
Content-Disposition: form-data; name="X-Amz-Algorithm"
AWS4-HMAC-SHA256
--12adaa1b4f
Content-Disposition: form-data; name="X-Amz-Credential"
WeyUtAXps-_5dIDvFWF-rKZ5XyzWf-BmOEI_vNtk/20060102/cn-east-1/s3/aws4_request
--12adaa1b4f
Content-Disposition: form-data; name="X-Amz-Date"
20060102T15:03:04.000Z
--12adaa1b4f
Content-Disposition: form-data; name="X-Amz-Signature"
<Signature-String>
--12adaa1b4f
Content-Disposition: form-data; name="Policy"
<Base64-Encoded-Policy-String>
--12adaa1b4f
Content-Disposition: form-data; name="Content-Type"
image/jpeg
--12adaa1b4f
Content-Disposition: form-data; name="success_action_redirect"
https://example.com/upload_success.html
--12adaa1b4f
Content-Disposition: form-data; name="key"
uploads/avatar/${filename}
--12adaa1b4f
Content-Type: application/octet-stream
Content-Disposition: form-data; name="file"; filename="gopher.png"
<FileDataBinary>
--12adaa1b4f--
...
请求参数
该接口未定义请求参数
请求头
请求数据
- HTML Form 表单的字节序列
响应定义
该接口根据请求数据返回不同响应数据
默认服务器端正确处理请求时响应 HTTP 状态码为 204
如果表单包含
success_action_redirect
,则服务器正确处理请求后跳转到指定的 URL 地址如果表单包含
success_action_status
,则服务器正确处理请求后返回指定的 HTTP 状态码