帮助与文档

我们为你提供丰富、详尽的使用指南以及产品文档

PUT Object

用于向存储空间上传一个对象,此操作要求请求者对存储空间拥有可写权限。假如存储空间中存在同名的对象, 在完整上传了之后会替换已有对象。

如果存储空间被设置为对匿名用户可写,则请求不需要携带认证信息。然而如果携带了认证信息,但是认证用户不拥有该存储空间的可写权限,则请求该接口会返回权限错误。

如果多个上传请求同时写入同一个对象名称(object name),最后一个被处理的请求会覆盖之前上传的对象内容。

如果希望在数据真正上传以前,提前得知该请求是否能被对象存储系统正确接受和处理,可以只发送 HTTP 请求头(不附带请求实体),并在请求头中包含 Expect: 100-continue。此方式主要使用场景是,当上传的对象实体非常庞大,为了提前知道该上传请求是否能被接受和处理(如认证信息是否正确,请求域名是否需要重定向等),减少不必要的数据传输。

存储空间中的文件夹是模拟概念,控制台展现文件列表时,会自动根据对象名称中的斜杠(/)生成文件夹。如果用户想创建一个空文件夹,可以调用此接口上传空对象,对象名以斜杠(/)结尾

Request Syntax

PUT /<object-name> HTTP/1.1
Host: <bucket-name>.<zone-id>.qingstor.com
Date: <date>
Authorization: <authorization-string>

Request Parameters

没有请求参数

Request Headers

参见公共请求头

对象加密,参见加密请求头

如果要给对象附带支持的标准 HTTP 头或自定义元数据,参见如何创建对象元数据

Header Name Type Description Required
Content-Length String 对象实体的大小 Yes
Content-MD5 String 对象实体的 MD5 值,用于检查对象在传输过程中字符是否出错或被篡改 No
Content-Type String 对象的类型 No
Expect String 如果请求头附加这个参数,不需要附带 request body,对象存储服务端判断可以接受此请求,则返回 100 CONTINUE No
x-qs-storage-class String 指定该对象的存储级别,支持的存储级别为 “STANDARD” 和 “STANDARD_IA”,默认存储级别为”STANDARD”。存储级别错误将返回 400 INVALID_REQUEST No

Request Body

对象实体内容

Response Headers

参见公共响应头

若对象被加密,服务端将返回加密响应头

Status Code

该 API 为幂等操作. 成功则返回 201, 失败的返回码参考错误码列表

Response Body

正常情况下没有响应消息体, 错误情况下会有返回码对应的 Json 消息, 参考错误码列表

Example

Example Request

PUT /myphoto.jpg HTTP/1.1
Host: mybucket.pek3a.qingstor.com
Date: Sun, 16 Aug 2015 09:05:00 GMT
Content-Length: 7987
Authorization: authorization string
[7987 bytes of object data]

Example Response

HTTP/1.1 201 CREATED
Server: QingStor
Date: Sun, 16 Aug 2015 09:05:00 GMT
ETag: "0c2f573d81194064b129e940edcefe9b"
Content-Length: 0
Connection: close
x-qs-request-id: aa08cf7a43f611e5886952542e6ce14b