跳至主要內容

檔案儲存提供者

預設情況下,Logto Console 使用文字輸入來處理靜態檔案 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 的預設「主要端點」作為公開 URL。Logto 將透過 Azure SDK 從 "connectionString" 中獲取此值。要了解更多關於儲存帳戶主要端點的資訊,請參閱官方 Azure Storage 主要端點文件。

S3 Storage​

S3 Storage 是一種雲端儲存服務,透過網路服務介面提供物件儲存。以下指南將示範如何將 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​

bucket 是 Amazon S3 中存儲物件的容器。要建立 bucket,請參閱官方 AWS S3 bucket 文件。

region​

可選。

區域是 AWS S3 bucket 所在的地理區域。如果 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 是一種雲端儲存服務,透過網路服務介面提供物件儲存。以下指南將示範如何將 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​

bucket 名稱。

publicUrl​

可選。

公開 URL 是可用於公開存取儲存資源的 URL。如果你未使用 CDN,可以將其留空以使用 S3 Storage 的預設 URL。