XML 的 HTTP 状态和错误代码

以下文档提供了有关 Cloud Storage XML API 中使用的错误消息和状态代码的参考信息。如需了解 Cloud Storage JSON API 使用的错误消息和状态代码,请参阅此页面

错误响应格式

Cloud Storage 使用标准 HTTP 错误报告格式。成功的请求会返回 2xx 范围内的 HTTP 状态代码。失败的请求会返回 4xx 和 5xx 范围内的状态代码。 需要重定向的请求会返回 3xx 范围内的状态代码。错误响应通常会在响应正文中包含 XML 文档,其中包含有关错误的信息。

以下是错误响应的示例。

HTTP/1.1 409 Conflict
Content-Type: application/xml
Content-Length: 182
Date: Wed, 03 Mar 2010 00:22:00 GMT
Expires: Wed, 03 Mar 2010 00:22:00 GMT
Cache-Control: private, max-age=0

<?xml version='1.0' encoding='utf-8'?> <Error> <Code>BucketNameUnavailable</Code> <Message> The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again. </Message> </Error>

下表介绍了响应正文中的元素:

元素 说明
Error 包含错误信息的容器。
Code 错误名称。
Message 错误的说明。

HTTP 状态和错误代码

下面介绍了 Cloud Storage 使用的 HTTP 状态和错误代码。

301 - 永久移动

错误名称 说明
永久重定向 尝试访问的存储分区必须使用指定的端点进行寻址。 请将今后的所有请求发送到此端点。

304 - 未修改

错误名称 说明
未修改 您请求的资源未根据您指定的条件进行修改。

307 - 暂时重定向

错误名称 说明
重定向 暂时重定向。
临时重定向 您在 DNS 更新期间将被重定向到存储分区。

308 - 恢复未完成

错误名称 说明
恢复未完成 表示未完成的可续传上传,并提供 Cloud Storage 已接收的字节数范围。

400 - 错误请求

错误名称 说明
AmuousousGrantByEmailAddress 您提供的电子邮件地址与多个帐号相关联。
错误摘要 您指定的 Content-MD5 与我们收到的内容不一致。
CloudKmsBadKey Cloud KMS 密钥错误。
CloudKmsCannotChangeKeyName 无法更改 Cloud KMS 密钥名称。
CloudKmsDecryptionKeyNotFound 找不到资源的 Cloud KMS 解密密钥。
CloudKmsDisabledKey Cloud KMS 密钥已停用、销毁或已安排销毁。
CloudKmsEncryptionKeyNotFound 找不到 Cloud KMS 加密密钥。
CloudKmsKeyLocationNotAllowed 不允许使用 Cloud KMS 密钥位置。
不支持凭据 此请求不支持凭据。
CcrMismatch 您指定的 CRC32C 与我们计算不符。
CustomerEncryptionAlgorithm 无效 缺少加密算法,或者提供的算法不是“AE256”。
CustomerEncryptionKeyFormatIs 无效 缺少加密密钥,或者密钥并非采用 Base64 编码,或者不符合加密算法的长度上限。
CustomerEncryptionKeyIs 不正确 提供的加密密钥不正确。
CustomerEncryptionKeySha256Is 无效 缺少 SHA256 哈希值或加密密钥不是 Base64 编码,或者它与加密密钥不匹配。
DotfulBucketNameNotUnderTld 指定的存储分区包含“.”但未在目前的顶级域名下。
实体过大 您上传的文件小于上传的最小对象大小。
实体过大 您上传的文件超出了允许的大小上限。
ExceedHeaderValues 费用 期望出现多个 HTTP 标头值。
过期令牌 提供的令牌已过期。
未完成 您未提供 Content-Length HTTP 标头所指定的字节数。
错误的请求总数 POST 要求每次请求只能上传一个文件。
IllegalEndpoint 仅适用于上传端点和仅下载端点的端点只能用于上传或下载对象。
内嵌数据过大 内嵌数据超出了允许的大小上限。
无效参数 参数无效。
存储分区名称无效 指定的存储分区无效。
组件数量无效 请求中包含的组件过多或过少。
InvalidCrc 您指定的 CRC32c 无效。
无效摘要 您指定的 Content-MD5 无效。
无效存储分区名称 指定的存储分区包含“.”但语法无效。
无效哈希 您指定的 x-goog-hash 标头无效。
InvalidLocationConstraint 指定的地理位置限制条件无效。您无法使用 Cloud Storage API 指定位置。
政策无效 表单内容不符合政策文档中指定的条件。
无效的 StorageClass 您指定的存储类别无效。
InvalidLocationConstraintStorageCombination 不支持指定位置和存储类别的组合。具体而言,区域存储分区不支持 MULTI_REGIONAL 存储空间,多区域存储分区不支持 REGIONAL Storage。
对象名称无效 指定的对象名称无效。
InvalidTargetBucketForLogging 日志记录的目标存储分区不存在,或未向群组“cloud-storage-analytics@google.com”授予写入权限。请参阅设置日志传送
InvalidToken 提供的令牌格式不正确或无效。
URI 无效 无法解析指定的 URI。
键过长 您的对象名称过长。
格式有误的 ACL 错误 您提供的 XML 格式不正确,或尚未按照我们已发布的架构进行验证。
格式不正确的标头值 HTTP 标头值格式不正确。
POST 格式不正确 POST 请求的正文格式不正确。
XML 格式不正确 如果用户为配置发送格式错误的 XML(不符合所发布的 XSD 的 XML),就会出现这种情况。
已超出消息长度上限 您的请求过大。
MaxPostPreDataLengthExceededError 上传文件前的 POST 请求字段过大。
元数据过大 您的元数据标头超出了允许的元数据大小上限。
MissingRequestBodyError 如果用户以请求的形式发送空的 XML 文档,就会发生这种情况。
缺少安全标头 您的请求缺少必要的标头。
NoLoggingStatusForKey 没有针对密钥的日志记录状态子资源。
未执行 您提供的标头或查询请求了一个未执行的函数。
NoMd5 提供 对于请求的操作,必须提供 MD5,但未提供。
RequestIsNotMultiPartContent 存储分区 POST 必须为 enclosure-type multipart/form-data 类型。
请求超时 在超时期限内,未读取或写入其套接字。
ResourceIsEncryptedWithCustomerEncryptionKey 资源使用客户提供的加密密钥进行加密,但请求未提供该密钥。
ResourceNotEncryptedWithCustomerEncryptionKey 该资源不使用客户提供的加密密钥进行加密,但请求提供的是该密钥。
需要 SecureConnection 要处理此请求,需要使用安全连接。
必须提供令牌刷新 提供的令牌必须刷新。
TooMany 存储分区 您尝试创建的存储分区数超过了允许的上限。
非预期的内容 此请求不支持内容。
UnableolvableGrantByEmailAddress 您提供的电子邮件地址与记录中的任何帐号均不匹配。
不受支持 您指定的 ACL 不受支持。如需详细了解 Cloud Storage 支持的 ACL,请参阅访问权限控制
UserKeyMustBeSpecified 存储分区 POST 必须包含指定的字段名称。如果已指定,请检查字段的顺序。
userProjectInconsistent 请求中指定的用户项目与之前相关的请求中指定的用户项目不匹配。
用户项目无效 请求中指定的用户项目无效,因为它是一个格式有误的项目 ID,或者它引用的项目不存在。
缺少 UserProject 所请求的存储分区已启用请求者付款功能,因此请求者不是存储分区的所有者,并且请求中不存在用户项目。

401 - 未授权

错误名称 说明
身份验证所需的请求者付款 对请求者付款功能的存储分区的访问权限需进行身份验证。
Unauthorized

表示 Cloud Storage 已收到未经授权的请求。
请求标头无效或缺失。
如需了解详情,请参阅 RFC 7235 $3.1
处理此错误的标准做法为以下之一或全部:

  1. 跟踪您获取当前访问令牌的时间,并在发现该令牌存在的时间比获取时返回的生命周期时间(通常为一小时)刷新。
  2. 捕获 401 异常,自动获取新的访问令牌并重试请求。

403 - 禁止

错误名称 说明
访问遭拒 访问遭拒。这适用于您无权访问的任何对象,无论该对象是否实际存在。
帐号问题 您的 Google 帐号存在问题,导致该操作无法成功完成。一个问题可能是结算。查看结算页面,查看您是否有逾期未付的余额或帐号上的信用卡(或其他付款机制)是否已过期。对于创建项目,请参阅 Google Cloud Console 中的“项目”页面。如需了解其他问题,请参阅“资源和支持”页面
其他用户拥有域 您尝试创建的存储分区是其他用户所拥有的域名。
存储分区已存在 所请求的存储分区名称不可用。存储分区命名空间由系统的所有用户共享。请另选一个名称,然后重试。
禁止进行跨位置日志记录 不允许进行跨位置日志记录。一个位置中的存储分区无法将信息记录到另一个位置。
需要对网域进行验证 您尝试创建的存储分区需要进行域名所有权验证。 如需了解详情,请参阅存储分区命名准则
配额不足 用户没有足够的配额来完成此操作。
无效的访问密钥 ID 您提供的用户 ID 不存在于我们的记录中。
付款人无效 已停用对此对象的所有访问权限。
无效的安全性 提供的安全凭据无效。
对象未激活 由于该对象存在主动保全,因此不允许替换或删除对象。
请求超时 请求时间和服务器时间之间的差异过大。
保留政策 NotMet 除非对象达到存储分区的保留政策设置的保留期限,否则不允许替换或删除对象。
签名不匹配 我们计算出的请求签名与您提供的签名不匹配。请检查您的 Google Secret 和签名方法。
UserProjectAccessDenied 请求者无权使用其请求中指定的项目。请求者必须具有指定项目的 serviceusage.services.use 权限。
UserProjectAccountProblem 请求中使用的项目存在问题,阻止操作成功完成。一个问题可能是结算。查看结算页面,查看您是否有逾期未付的余额或帐号上的信用卡(或其他付款机制)是否已过期。对于创建项目,请参阅 Google Cloud Console 中的“项目”页面。如需了解其他问题,请参阅“资源和支持”页面

404 - 未找到

错误名称 说明
NoSuchBucket 指定的存储分区不存在。
NoSuchKey 指定的对象名称不存在。

405 - 不允许使用的方法

错误名称 说明
访问遭拒 访问遭拒。
不允许使用的方法 对此资源不允许使用指定的方法。

408 - 请求超时

错误名称 说明
uploadBrokenConnection 请求超时。请稍等指数退避算法,然后再继续操作。

409° 冲突

错误名称 说明
存储分区已存在 您之前创建命名存储分区的请求已成功完成。
存储分区名称不可用 所请求的存储分区名称不可用。存储分区命名空间由系统的所有用户共享。请另选一个名称,然后重试。当您尝试创建已存在的存储分区名称或者尝试创建不符合存储分区命名要求的存储分区名称时,可能会发生此错误。
存储分区 NotEmpty 您尝试删除的存储分区不为空。
操作已中止 针对此资源目前正在执行有冲突的条件操作。 请重试。
重新写入令牌已确定 针对已完成的重写操作,尝试使用 RewriteToken 调用 RewriteToken。

411 - 所需长度

错误名称 说明
MissingContentLength 您必须提供 Content-Length HTTP 标头。

412 - 前提条件失败

错误名称 说明
前提条件失败 您指定的至少一个条件未持有条件。

416 - 请求的范围不可预测

错误名称 说明
无效范围 无法满足请求的范围。

429 - 请求过多

错误名称 说明
超出速率限制 已超出 Cloud Storage 速率限制。使用指数退避算法重试。
减速 您发送请求的频率过于频繁。例如,对象更新限制为每秒 1 次更新。如需其他信息,请参阅限制和配额。请等待片刻,然后进行指数退避算法,然后继续操作,降低发送请求的速率。

500 - 内部服务器错误

错误名称(如果存在) 说明
InternalError 我们遇到了内部错误。请稍等指数退避算法,然后再继续操作。

503 - 服务不可用

错误名称(如果存在) 说明
减速 该服务暂时无法使用。请稍等指数退避算法,然后再继续操作。

504 - 网关超时

错误名称 说明
不适用 此服务暂时无法连接到其他服务。请先耐心等待指数退避算法,然后再继续。