跳到主要内容

PutObject

请求语法

PUT /objectName HTTP/1.1
Host: bucketname.cos.chinac.com
Content-Type: ContentType
Content-Length:ContentLength
Date: GMT Date
Authorization: SignatureValue

请求Header

NameTypeDescription
Content-LengthString对象的大小
Content-MD5String根据协议RFC 1864对消息内容(不包括头部)计算MD5值,COS建议用户使用该请求头进行端到端检查

细节分析

  1. 如果用户上传了Content-MD5请求头,COS会计算body的Content-MD5并检查一致性,如果不一致,将返回InvalidDigest错误码
  2. 如果请求头中的“Content-Length”值小于实际请求体(body)中传输的数据长度。COS仍将成功创建文件;但Object大小只等于“Content-Length”中定义的大小,其他数据将被丢弃
  3. 如果试图添加的Object的同名文件已经存在,并且有访问权限。新添加的文件将覆盖原来的文件,成功返回200 OK
  4. 如果在PutObject的时候,携带以x-cos-meta-为前缀的参数,则视为user metadata,比如x-cos-meta-location。一个Object可以有多个类似的参数,但所有的user metadata总大小不能超过2K
  5. 如果Head中没有加入Content length参数,会返回411 Length Required错误。误码:MissingContentLength
  6. 如果试图上传的Object所在的Bucket不存在,返回404 Not Found错误。错误码:NoSuchBucket
  7. 如果试图上传的Object所在的Bucket没有访问权限,返回403 Forbidden错误。错误码:AccessDenied
  8. 如果上传文件长度超过500MB,返回错误消息400 Bad Request。错误码:InvalidArgument
  9. 如果传入的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"