跳到主要内容

文件存储提供商

默认情况下,Logto 控制台使用文本输入来处理静态文件 URL,例如头像。要启用更直观的拖放文件上传体验,你需要配置一个存储提供商。

Logto 支持多个存储提供商,包括 AWS S3 和 Azure Storage。本指南将向你展示如何为 Logto 配置存储提供商。

配置存储在数据库的 systems 表中,但建议使用 CLI 来配置存储提供商。有关更多信息,请尝试使用 "help" 命令:

pnpm logto db system --help

Azure Storage​

Azure Storage 是一个强大且可扩展的云存储解决方案,允许你在云中存储和管理数据。以下指南将向你展示如何将 Azure Storage 配置为 Logto 的存储提供商。

前提条件​

使用 CLI 配置​

示例用法:

pnpm logto db system set storageProvider '{"provider":"AzureStorage","connectionString":"DefaultEndpointsProtocol=https;AccountName=logto;AccountKey=oRhfTBHOHiBxxxxxxxxxxxxxxxxZ0se6XROftl/Xrow==;EndpointSuffix=core.windows.net","container":"logto"}'

connectionString​

要访问 Azure Storage,你需要使用连接字符串,它是包含建立与存储账户连接所需信息的字符字符串。

要获取连接字符串,请参阅官方 Azure Storage 连接字符串文档。

container​

容器是存储 blob 的存储资源。你可以使用容器来组织 blob 并控制对数据的访问。

要创建容器,请参阅官方 Azure Storage 容器文档。

publicUrl​

可选。

公共 URL 是可用于公开访问存储资源的 URL。如果你不使用 CDN,可以将其留空以使用 Azure Storage 的默认 "Primary endpoint" 作为公共 URL。 Logto 将借助 Azure SDK 从 "connectionString" 中获取此值。要了解有关存储账户主端点的更多信息,请参阅官方 Azure Storage 主端点文档。

S3 Storage​

S3 Storage 是一种通过 Web 服务接口提供对象存储的云存储服务。以下指南将向你展示如何将 S3 Storage 配置为 Logto 的存储提供商。

前提条件​

使用 CLI 配置​

示例用法:

pnpm logto db system set storageProvider '{"provider":"S3Storage","accessKeyId":"my-access-key-id","accessSecretKey": "my-secret-access-key","bucket":"logto","endpoint":"https://s3.us-east-2.amazonaws.com"}'

accessKeyId​

访问密钥 ID 是 AWS 账户的标识符。要查找 AWS 账户的访问密钥 ID,请参阅官方 AWS 访问密钥 ID 文档。

accessSecretKey​

秘密访问密钥与访问密钥 ID 一起用于签署编程请求。要查找 AWS 账户的访问密钥秘密,请参阅官方 AWS 访问密钥秘密文档。

bucket​

存储桶是存储在 Amazon S3 中的对象的容器。要创建存储桶,请参阅官方 AWS S3 存储桶文档。

region​

可选。

区域是 AWS S3 存储桶所在的地理区域。如果 endpoint 是标准的 AWS S3 端点,则可以从 endpoint 中解析出来。要查找 AWS S3 区域,请参阅官方 AWS S3 区域文档。

如果你使用的是 S3 兼容存储服务,可以将此字段留空。

endpoint​

可选。

端点是用于访问 AWS S3 服务的 URL。要查找 AWS S3 端点,请参阅官方 AWS S3 端点文档。

你可以将此字段留空以使用该区域的默认端点。如果你使用的是 S3 兼容存储服务,可以使用该服务的端点。

publicUrl​

可选。

公共 URL 是可用于公开访问存储资源的 URL。如果你不使用 CDN,可以将其留空以使用 S3 Storage 的默认 URL。

Google Cloud Storage​

Google Cloud Storage 是一种通过 Web 服务接口提供对象存储的云存储服务。以下指南将向你展示如何将 Google Cloud Storage 配置为 Logto 的存储提供商。

前提条件​

获取密钥文件​

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

  1. 访问服务账户页面: https://console.cloud.google.com/iam-admin/serviceaccounts
  2. 创建一个账户,输入名称,然后继续。
  3. 在下一步中,选择“Storage Object User”角色。你可以使用过滤器找到它。
  4. 完成账户创建后,转到账户详细信息页面并选择“密钥”选项卡。
  5. 点击“添加密钥”,选择“创建新密钥”,在对话框中选择“json”,然后下载你的 json 文件。

将密钥文件添加到日志 (Logto)​

Logto 应该可以访问密钥文件。

在 Node.js 中运行

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

在 Docker 容器中运行

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

volumes:
- ./path/to/google-storage-key.json:/etc/logto/core/google-storage-key.json

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

使用 CLI 配置​

示例用法:

pnpm logto db system set storageProvider '{"provider":"GoogleStorage","projectId":"psychic-trainer-403801","keyFilename":"google-storage-key.json","bucketName":"logto-test2"}'

projectId​

你的 Google Cloud 项目 ID。

keyFilename​

密钥文件的名称,如果你按照上述步骤操作,则为 google-storage-key.json。

bucketName​

存储桶名称。

publicUrl​

可选。

公共 URL 是可用于公开访问存储资源的 URL。如果你不使用 CDN,可以将其留空以使用 S3 Storage 的默认 URL。