将 Google Cloud Storage 设为 Logto 的文件存储
设置 Google Cloud Storage 作为 Logto 文件存储的实践指南。
默认情况下,Logto 控制台使用文本输入来输入静态文件 URL,如头像。为了启用更直观的文件上传体验与拖放功能,你必须配置一个存储提供商。
本文提供了如何将 Google Cloud Storage 配置为你的存储提供商的分步指南。
前提条件
- 一个 Logto 实例,可以在 Node.js 中本地运行或在 Docker 容器中运行。如果你没有,可以查看此指南: https://docs.logto.io/docs/tutorials/get-started/#local
- 一个 Google Cloud 项目
准备存储桶
创建一个存储桶非常简单。参考 Google Cloud 官方文档: https://cloud.google.com/storage/docs/creating-buckets。
存储桶准备好后,下一步是设置公共查看权限。步骤如下:
- 在 Google Cloud 控制台中,导航到 Cloud Storage Buckets 页面。
- 从存储桶列表中,点击你想要公开的存储桶的名称。
- 选择页面顶部靠近的 Permissions 选项卡。
- 在 Permissions 部分,点击 Grant access 按钮。
- 在 New principals 字段中,输入
allUsers
。 - 在 Select a role 下拉框中,在过滤框中输入 Storage Object Viewer,并从过滤结果中选择 Storage Object Viewer。
- 点击 Save。
- 点击 Allow public access。
确保 "Storage Object Viewer" 角色已分配。以下是参考截图:
获取密钥文件
Google Cloud SDK 通常使用“密钥文件”。如果你不熟悉 Google Cloud,这可能是最具挑战性的一部分。获取方法如下:
- 前往服务账户页面: https://console.cloud.google.com/iam-admin/serviceaccounts
- 创建一个账户,输入名称,然后继续。
- 在下一步中,选择“Storage Object User”角色。你可以通过过滤器找到它。
- 完成账户创建后,转到账户详情页面并选择“keys”选项卡。
- 点击“add key”,选择“create a new key”,在对话框中选择“json”,然后下载你的 json 文件。
添加密钥文件到 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:
记得将 projectId
和 bucketName
替换为你的值。
通过 CLI 更新
将 JSON 转换为字符串,并运行以下命令:
测试设置
现在,一切都已设置好,记得重启 Logto 并进行尝试。你可以去 "Sign-in experience" 部分尝试上传一个标志。
如果你觉得这些步骤复杂,可以考虑使用 Logto 云版本。我们将为你处理一切!