新建对象 (PUT Object)
该接口定义了客户端通过单个请求 (PUT) 上传对象 (Object) 到指定空间 (Bucket) 的操作。如果客户端对同一资源同时发起多个请求,最后完成的请求数据将覆盖前面已完成的请求数据。七牛云存储不支持上传对象的原子性操作,客户端必须自行实现该逻辑!
数据传输模式
Qiniu S3 API 支持传统数据传输模式和分块 (Chunked) 数据传输模式,客户端可以根据上传对象的大小和网络状况选择不同的数据传输模式,从而优化上传过程。
传统传输模式
- 带认证签名的请求
客户端请求包含上传对象 (Object) 的 HASH 校验值,Qiniu S3 API 服务端在收到请求后会按照同一算法重新计算上传内容的 HASH 值并与客户端指定的值比对,只有当两个值相等时服务器端才会处理上传请求,否则返回对应的错误信息。
- 不带认证签名的请求
客户端请求不包含上传对象 (Object) 的 HASH 校验值,Qiniu S3 API 服务端仅在上传处理完成后通过 HTTP 响应头 (ETag) 返回客户端文件的 HASH 值,客户端可以选择是否校验上传数据的完整性。
分块传输模式 (Chunked)
- 带认证签名的请求
客户端可以通过指定请求头 Content-Encoding: aws-chunked
使用 AWS 自定义包含认证签名的分块传输请求。
- 不带认证签名的请求
客户端可以通过指定请求头 Transfer-Encoding: chunked
使用 HTTP 1.1 定义的分块传输请求。