# 设置图像上传到Google Cloud Storage

**URL:** https://meta.discourse.org/t/set-up-image-uploads-to-google-cloud-storage/117655
**Category:** Sysadmins
**Tags:** how-to, google-cloud
**Created:** [2019年五月14日 04:49 UTC](https://meta.discourse.org/t/set-up-image-uploads-to-google-cloud-storage/117655 "2019-05-14T04:49:27Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![P16](https://avatars.discourse-cdn.com/v4/letter/p/b19c9b/32.png) [@P16](https://meta.discourse.org/u/P16)
#### Post date: [2019年五月14日 04:49 UTC](https://meta.discourse.org/t/set-up-image-uploads-to-google-cloud-storage/117655/1 "2019-05-14T04:49:27Z")

</div>

您是否希望使用 Google Storage 进行图片上传？以下是操作步骤：

- 如果您还没有默认的 Google 项目，请先设置一个 [默认 Google 项目](https://cloud.google.com/storage/docs/migrating#defaultproj)。

- 获取一个 [开发者密钥](https://cloud.google.com/storage/docs/migrating#keys)。

- 通过访问 [此处](https://console.cloud.google.com/storage/browser) 创建一个存储桶。输入一个唯一的名称，并选择默认的存储类别（我使用的是美国境内的多区域存储）。

现在我们需要配置 Discourse 实例。进入设置，添加一个针对 S3 的过滤器。然后进行以下更改：

- 如果您希望启用手动或自动备份，请勾选“`enable s3 backups`”复选框。

- 如果已勾选 `enable s3 backups`，请在“`s3 backup bucket`”中输入上面创建的存储桶名称。

- 在各自的文本字段中粘贴“`Access Key ID`”和“`Secret Access Key`”（这些是在创建开发者密钥时生成的）。

- 在 `s3_endpoint` 中，粘贴以下端点：

完成！尝试上传图片，一切应该会神奇地正常工作 🙂

* * *

若要从您的域名直接“提供”图片，请遵循以下步骤：

- 确保您的存储桶可公开访问。不过，它需要通过对象级别的权限进行设置。

- 如果您还没有负载均衡器，请设置一个。对于后端，创建一个后端存储桶，将其指向上面创建的存储桶，启用 CDN，并连接它。

- 对于 URL 映射，创建两条规则。两者的主机都需设置为 `*`；路径需设置为 `/original/*` 和 `/optimized/*`；后端需指向后端存储桶——保存设置。

- 在 Discourse 设置中，将 `s3 cdn url` 更改为您的域名——请确保这与您的负载均衡器规则设置相一致。

完成——图片现在应来自 `www.yourdomain.com/`

* * *

正如 @tuanpembual 在 [此帖子](https://meta.discourse.org/t/use-google-cloud-storage-instead-of-s3/40046/4) 中善意指出的那样，现在备份已成为可能。基本上，您需要：

1. 进入 Google Cloud Console 中的您的项目
2. 选择 Storage
3. 选择您的存储桶
4. 进入权限选项卡
5. 添加新权限，用您的服务账号邮箱填写您的账号。对于角色，选择 Storage Legacy Object Owner
6. 保存并完成。
