PutObject
请求语法
PUT /objectName HTTP/1.1
Host: bucketname.cos.chinac.com
Content-Type: ContentType
Content-Length:ContentLength
Date: GMT Date
Authorization: SignatureValue
请求Header
Name | Type | Description |
---|---|---|
Content-Length | String | 对象的大小 |
Content-MD5 | String | 根据协议RFC 1864对消息内容(不包括头部)计算MD5值,COS建议用户使用该请求头进行端到端检查 |
细节分析
- 如果用户上传了Content-MD5请求头,COS会计算body的Content-MD5并检查一致性,如果不一致,将返回InvalidDigest错误码
- 如果请求头中的“Content-Length”值小于实际请求体(body)中传输的数据长度。COS仍将成功创建文件;但Object大小只等于“Content-Length”中定义的大小,其他数据将被丢弃
- 如果试图添加的Object的同名文件已经存在,并且有访问权限。新添加的文件将覆盖原来的文件,成功返回200 OK
- 如果在PutObject的时候,携带以x-cos-meta-为前缀的参数,则视为user metadata,比如x-cos-meta-location。一个Object可以有多个类似的参数,但所有的user metadata总大小不能超过2K
- 如果Head中没有加入Content length参数,会返回411 Length Required错误。误码:MissingContentLength
- 如果试图上传的Object所在的Bucket不存在,返回404 Not Found错误。错误码:NoSuchBucket
- 如果试图上传的Object所在的Bucket没有访问权限,返回403 Forbidden错误。错误码:AccessDenied
- 如果上传文件长度超过500MB,返回错误消息400 Bad Request。错误码:InvalidArgument
- 如果传入的Object key长度大于1000,返回400 Bad Request。错误码:InvalidObjectName
示例
请求示例
PUT /cos.jpg HTTP/1.1
Host: test-bucket.cos.chinac.com
Date: Fri, 24 Feb 2012 06:03:28 GMT
Content-Type: image/jpg
Content-Length: 344606
Content-MD5: bb69583fd4da5970a86aa47c0da561ad
Authorization: COS qn6qrrqxo2oawuk53otfjbyc:kZoYNv66bsmc10+dcGKw5x2PRrk=
[344606 bytes of object data]
返回示例
HTTP/1.1 200 OK
Server: COS
Date: Sat, 21 Nov 2015 18:52:34 GMT
Content-Length: 0
Connection: keep-alive
x-cos-request-id: 5650BD72207FB30443962F9A
ETag: "A797938C31D59EDD08D86188F6D5B872"