问题排查

403:帐号已停用

问题:我尝试创建一个存储分区,但收到 403 Account Disabled 错误。

解决方案:此错误表示您没有为关联项目启用结算功能。如需了解启用结算功能的步骤,请参阅为项目启用结算

如果已启用结算功能,但是您仍然收到此错误消息,您可以与支持部门联系并提供您的项目 ID 和问题描述。

403:访问遭拒

问题:我尝试列出我的存储分区中的对象,但收到 403 Access Denied 错误。

解决方案:检查您的凭据是否正确。例如,如果您使用的是 gsutil,请检查存储在 .boto 文件中的凭据是否准确。

假设您使用的是正确的凭据,您的请求是通过代理使用 HTTP(而不是 HTTPS)进行路由的吗?如果是,请检查您的代理是否配置为从此类请求中移除 Authorization 标头。如果进行了此类配置,请确保您的请求使用 HTTPS(而不是 HTTP)。

409:冲突

问题:我尝试创建存储分区,但收到以下错误:

409 Conflict. Sorry, that name is not available. Please try a different one.

解决方案:您尝试使用的存储分区名称(例如 gs://catsgs://dogs)已被占用。Cloud Storage 具有一个全局命名空间,因此您不能将存储分区命名为与现有存储分区相同的名称。请选择未使用的名称。

代理服务器

问题:我要通过代理服务器进行连接,我需要做什么?

解决方案:向 Cloud Storage 发出的请求需要访问 accounts.google.com 以执行 OAuth2 令牌交换,以及访问 *.googleapis.com 以执行存储请求。如果您通过代理服务器访问 Cloud Storage,则必须允许访问这些网域。如果您的代理服务器或安全政策不支持按网域列出白名单(而是需要按 IP 网络块列出白名单),我们强烈建议您为所有 Google IP 地址范围配置代理服务器。您可以通过在 ARIN 查询 WHOIS 数据来查找地址范围。您最好定期查看代理设置,以确保它与 Google 的 IP 地址相匹配。

我们不建议您使用单次查询 accounts.google.comstorage.googleapis.com 所获得的单个 IP 地址来配置代理。由于 Google 服务通过 DNS 名称进行呈现,而这些名称映射到了可能随时间变化的大量 IP 地址,因此,如果基于单次查询来配置代理,可能会导致您无法连接到 Cloud Storage。

如果您的请求通过代理服务器进行路由,您可能需要与网络管理员联系,以确保代理不会删除包含您的凭据的 Authorization 标头。如果没有 Authorization 标头,您的请求将被拒绝,并且您会收到 MissingSecurityHeader 错误。

gsutil stat

问题:我尝试使用 gsutil stat 命令来显示子目录的对象状态,但收到错误。

解决方案:Cloud Storage 使用平面命名空间将对象存储到存储分区中。虽然可以在对象名称中使用斜杠(“/”),使得对象看起来仿佛处于层次结构中,但 gsutil stat 命令会将尾部斜杠视为对象名称的一部分。

例如,如果运行命令 gsutil -q stat gs://my-bucket/my-object/,gsutil 将查询对象 my-object/(带有尾部斜杠)的相关信息,而不是对嵌套在 my-bucket/my-object/ 下的对象执行操作。除非您实际拥有具有该名称的对象,否则操作将失败。

对于子目录列出操作,请改为使用 gsutil ls

配置为网站的存储分区

设置存储分区来托管静态网站时可能遇到的常见问题如下。

HTTPS 传送

问题:我希望通过 HTTPS 传送我的内容。

解决方案:虽然您可以使用直接 URI(例如 https://storage.googleapis.com/my-bucket/my-object),通过 HTTPS 传送内容,但在使用 CNAME 重定向托管静态网站时,Cloud Storage 仅支持 HTTP。要使用 SSL 通过自定义域传送内容,请设置负载均衡器,结合使用第三方内容分发网络和 Cloud Storage,或者从 Firebase 托管(而不是 Cloud Storage)传送静态网站内容。

域名验证

问题:我无法验证我的域名。

解决方案:通常,Search Console 中的验证过程会指示您将文件上传到您的网域,但是,如果没有相关的存储分区(您只能在执行域名验证后创建),您可能无法执行此操作。

在这种情况下,请使用域名提供程序验证方法来验证所有权。有关相关操作步骤,请参阅所有权验证。您可以在创建存储分区之前完成此验证。

无法访问的页面

问题:我的网站传送的网页出现 Access denied 错误消息。

解决方案:检查对象是否已被公开共享。如果没有,请参阅公开数据以了解如何执行此操作。

如果您之前上传并共享了一个对象,但随后上传了该对象的新版本,则您必须以公开方式重新共享该对象。这是因为,上传新的版本后,公开权限会被覆盖。

内容下载

问题:系统提示我下载我的页面内容,而不是在浏览器中查看它。

解决方案:如果您将 MainPageSuffix 指定为对象并且该对象的类型不是网络内容,系统会提示网站访问者下载内容,而不是传送页面。要解决此问题,请将 content-type 元数据条目更新为合适的值,例如 text/html。要了解如何执行此操作,请参阅修改对象元数据

301:永久移动

问题:访问目录路径时,系统会返回一个空对象和一个 301 HTTP 响应代码。

解决方案:如果在访问目录(例如 http://www.example.com/dir/)时,您的浏览器下载了一个零字节对象,并且收到 301 HTTP 响应代码,则您的存储分区很可能包含具有该名称的空对象。要检查是否存在此问题并解决问题,请执行以下操作:

  1. 在 Google Cloud Platform Console 中打开 Cloud Storage 浏览器。
    打开 Cloud Storage 浏览器
  2. 点击 Google Cloud Platform Console 顶部的激活 Cloud Shell 按钮。 激活 Cloud Shell
  3. 运行 gsutil ls -R gs://www.example.com/dir/。如果输出包含 http://www.example.com/dir/,则该位置存在一个空对象。
  4. 使用以下命令移除空对象:gsutil rm gs://www.example.com/dir/

您现在可以访问 http://www.example.com/dir/ 并让它返回该目录的 index.html 文件(而不是空对象)。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Storage
需要帮助?请访问我们的支持页面