对象上传

要使用 XML API 上传对象,您需要发出 PUT 请求,其范围由存储分区名称和对象名称设定,并将对象数据添加到请求正文中。上传的对象会替换名称相同的任何现有对象。如需了解上传到 Cloud Storage 的提示,请参阅最佳做法。如需使用 XML API 等工具快速上传简单指南,请参阅上传对象

PUT Object 请求使用多个标准 HTTP 标头。Content-Length 指定对象的大小(以字节为单位),除非您使用的是分块传输编码。可选标头包括 Content-TypeContent-MD5 以及下面列出的标头。Cloud Storage 将这些标头作为对象元数据的一部分进行存储,Content-MD5 除外,Cloud Storage 使用该标头检查数据完整性。如需了解如何更改对象的元数据值,请参阅修改对象元数据

此外,如果您想更改现有对象的存储类别,也可以使用 PUT Object 请求,因为您必须重写现有的对象才能执行该操作。请求应包含 x-goog-storage-class请求标头,以及请求正文中的对象。

查询字符串参数

此请求通常不包含查询字符串参数。

如需了解您在创建和使用签名网址时包含的参数,请参阅签名网址查询字符串参数

请求标头

除了通用请求标头之外,您还可以使用以下内容。

标题 说明 必需
Cache-Control 应对可公开访问的对象进行缓存的条件。Cache-Control 也可用于确定是否可以转换对象。
Content-Disposition 一个标头,用于指定有关传输对象数据的表示信息。
Content-Encoding 压缩算法用于压缩要上传的对象。
Content-Language 内容的 ISO 639-1 语言代码。
x-goog-acl 您要应用于对象的预定义 ACL。
x-goog-custom-time 用户指定的日期和时间。
x-goog-encryption-kms-key-name 用于加密对象的客户管理的加密密钥
x-goog-meta- 可用于存储自定义元数据的扩展程序标头。
x-goog-storage-class 有效的存储类别

如需提供客户提供的加密密钥以及对象上传,请使用请求中的客户提供的加密密钥页面列出的标头

请求正文元素

请求正文中包含相应数据。

请求语法

以下语法适用于不使用任何查询字符串参数的 PUT Object 请求,并且排除 x-goog-copy-source 请求标头。

PUT /OBJECT_NAME HTTP/1.1
Host: BUCKET_NAME.storage.googleapis.com
Date: DATE
Content-Length: REQUEST_BODY_LENGTH
Content-Type: MIME_TYPE
Content-MD5: MD5_DIGEST
Authorization: AUTHENTICATION_STRING
x-goog-storage-class: STORAGE_CLASS

响应标头

请求可以返回各种响应标头,具体取决于您使用的请求标头。

响应正文元素

响应的响应正文中不包含 XML 文档。

示例

以下示例将一个名为 paris.jpg 的对象上传到名为 travel-maps 的存储分区。

请求

PUT /paris.jpg HTTP/1.1
Host: travel-maps.storage.googleapis.com
Date: Sat, 20 Feb 2010 16:31:08 GMT
Content-Type: image/jpg
Content-MD5: iB94gawbwUSiZy5FuruIOQ==
Content-Length: 554
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

响应

HTTP/1.1 200 OK
ETag: "881f7881ac1bc144a2672e45babb8839"
Date: Sat, 20 Feb 2010 16:31:09 GMT
Content-Length: 0
Content-Type: text/html

常见错误代码

如果您尝试将对象上传到不存在的存储分区中,找不到 404状态代码以及错误响应的正文NoSuchBucket包含于Code元素。

如果提供的 MD5 摘要格式不正确,您会收到400 无效请求状态代码以及错误响应的正文InvalidDigest包含于Code

如果摘要与我们在正文中计算的摘要不一致,400 无效请求状态代码以及错误响应的正文BadDigest包含于Code元素。