简体中文
  • google-cloud

将 Google Cloud Storage 设为 Logto 的文件存储

设置 Google Cloud Storage 作为 Logto 文件存储的实践指南。

Sijie
Sijie
Developer

默认情况下,Logto 控制台使用文本输入来输入静态文件 URL,如头像。为了启用更直观的文件上传体验与拖放功能,你必须配置一个存储提供商。

本文提供了如何将 Google Cloud Storage 配置为你的存储提供商的分步指南。

前提条件

准备存储桶

创建一个存储桶非常简单。参考 Google Cloud 官方文档: https://cloud.google.com/storage/docs/creating-buckets。

存储桶准备好后,下一步是设置公共查看权限。步骤如下:

  1. 在 Google Cloud 控制台中,导航到 Cloud Storage Buckets 页面。
  2. 从存储桶列表中,点击你想要公开的存储桶的名称。
  3. 选择页面顶部靠近的 Permissions 选项卡。
  4. Permissions 部分,点击 Grant access 按钮。
  5. New principals 字段中,输入 allUsers
  6. Select a role 下拉框中,在过滤框中输入 Storage Object Viewer,并从过滤结果中选择 Storage Object Viewer
  7. 点击 Save
  8. 点击 Allow public access

确保 "Storage Object Viewer" 角色已分配。以下是参考截图:

Storge Object Viewer

获取密钥文件

Google Cloud SDK 通常使用“密钥文件”。如果你不熟悉 Google Cloud,这可能是最具挑战性的一部分。获取方法如下:

  1. 前往服务账户页面: https://console.cloud.google.com/iam-admin/serviceaccounts
  2. 创建一个账户,输入名称,然后继续。
  3. 在下一步中,选择“Storage Object User”角色。你可以通过过滤器找到它。
  4. 完成账户创建后,转到账户详情页面并选择“keys”选项卡。
  5. 点击“add key”,选择“create a new key”,在对话框中选择“json”,然后下载你的 json 文件。

Storge Object User

添加密钥文件到 Logto

Logto 应该能访问到密钥文件。

在 Node.js 中运行

将文件复制到 /path/to/logto/core 并重命名为 google-storage-key.json

在 Docker 容器中运行

如果你在 Docker 容器中运行 Logto,需要将文件挂载到容器中。假设你使用的是 Docker Compose,添加以下内容到你的配置中:

记得将 /path/to 替换为实际路径。

更新提供商配置

我们将使用 Logto 的 CLI 更新提供商配置。CLI 通常位于 Logto 实例的根文件夹中。了解更多,请查看此链接: https://docs.logto.io/docs/references/using-cli/

准备 JSON

以下是一个示例配置 JSON:

记得将 projectIdbucketName 替换为你的值。

通过 CLI 更新

将 JSON 转换为字符串,并运行以下命令:

测试设置

现在,一切都已设置好,记得重启 Logto 并进行尝试。你可以去 "Sign-in experience" 部分尝试上传一个标志。

如果你觉得这些步骤复杂,可以考虑使用 Logto 云版本。我们将为你处理一切!