表单上传 (HTML Form Upload)

Qiniu S3 API 服务支持客户端通过 HTML 表单 (Form) 直接上传对象 (Object) 到七牛云存储。使用 HTML 表单 (Form) 上传方式应用无需中间代理,既简化了应用开发的复杂度又降低了数据上传延时性。

传统 HTML Form 上传路径与七牛 S3 API 表单上传路径对比如下:

HTML Form Upload

表单上传步骤

  • 客户端 (浏览器) 访问应用服务上传页面

  • 应用服务端返回包含上传信息 (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--
...
请求参数

该接口未定义请求参数

请求头

请参考 请求头 (HTTP Request Header)

请求数据
  • HTML Form 表单的字节序列

响应定义

该接口根据请求数据返回不同响应数据

  • 默认服务器端正确处理请求时响应 HTTP 状态码为 204

  • 如果表单包含 success_action_redirect,则服务器正确处理请求后跳转到指定的 URL 地址

  • 如果表单包含 success_action_status,则服务器正确处理请求后返回指定的 HTTP 状态码

results matching ""

    No results matching ""