使用 Cloud Storage

如果您的 Go 1.11 应用在运行时需要读取和写入文件,或者传送影片、图片或其他静态内容等文件,我们建议您使用 Cloud Storage 存储桶。

App Engine 会在您创建应用时创建一个默认存储桶。该存储桶可提供 5GB 的免费存储空间以及 Cloud Storage I/O 操作的免费配额。您可以创建其他 Cloud Storage 存储桶,但只有默认存储桶包含 5GB 的免费存储空间。

将 Cloud Storage 与 App Engine 搭配使用

如需在 App Engine 应用中使用 Cloud Storage 存储桶,请执行以下操作:

  1. 查看 App Engine 项目中现有存储桶的名称。从 Cloud Storage 上传或下载数据时,您将需要指定这些名称。

    我们建议您将 Cloud Storage 存储桶的名称存储在应用的环境变量中,而不要将其硬编码到应用中。

  2. 在应用中,使用 go get cloud.google.com/go/storage 命令将 Cloud Storage 声明为依赖项。或者,您也可以在应用的 go.mod 文件中声明依赖项。请详细了解如何指定依赖项

  3. 使用 Google Cloud 客户端库从您的存储桶上传下载数据。

    如需了解如何传送静态内容,请参阅存储和传送静态文件

使用默认存储桶

当您创建应用时,App Engine 会创建一个默认存储桶,该存储桶可提供 5GB 的免费存储空间。默认存储桶还可提供 Cloud Storage I/O 操作的免费配额。如需了解详情,请参阅价格、配额和限制。您需要为超出 5GB 限制的存储空间付费。

默认存储桶的名称采用以下格式:

project-id.appspot.com

App Engine 还会在部署应用的新版本时创建一个存储桶以用于临时存储。该存储桶的名称为 staging.project-id.appspot.com,仅可供 App Engine 使用。应用无法与此存储桶交互。

设置存储桶和对象权限

与您的应用关联的服务账号需要对项目中的存储桶执行读写操作的权限。如需了解所需的权限,请参阅适用于 Cloud Storage 的 IAM 角色

通常,与您的应用关联的服务账号是默认 App Engine 服务账号

根据您的组织政策配置,默认服务账号可能会自动被授予项目的 Editor 角色。我们强烈建议您通过强制执行 iam.automaticIamGrantsForDefaultServiceAccounts 组织政策限制条件来停用自动角色授予功能。如果您的组织是在 2024 年 5 月 3 日之后创建的,则默认情况下会强制执行此限制条件。

如果您停用自动角色授予功能,则必须决定向默认服务账号授予哪些角色,然后自行授予这些角色

如果默认服务账号已具有 Editor 角色,我们建议您将 Editor 角色替换为权限较少的角色。如需安全地修改服务账号的角色,请使用 Policy Simulator 查看更改的影响,然后授予和撤消相应的角色

如需了解如何允许其他用户、应用或项目访问存储桶及其内容,请参阅设置存储桶权限设置对象权限

将 Cloud Storage 与本地开发服务器搭配使用

App Engine 本地开发服务器不会模拟 Cloud Storage,因此必须通过互联网将所有 Cloud Storage 请求发送到实际的 Cloud Storage 存储桶。

价格、配额和限制

通过 Cloud Storage 客户端库调用 Cloud Storage 不会产生带宽费用。不过,此操作会产生操作费用。此外,由于该客户端库使用 URL Fetch 服务与 Cloud Storage 进行交互,因此这些调用将计入 URL Fetch 配额

请注意,Cloud Storage 是付费服务;您需要按照 Cloud Storage 价格表支付费用。