简体中文
  • google-cloud

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

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

Sijie
Sijie
Developer

不要在用户认证上浪费数周时间
使用 Logto 更快地发布安全应用。几分钟内集成用户认证,专注于您的核心产品。
立即开始
Product screenshot

默认情况下,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 云版本。我们将为你处理一切!