檔案儲存提供者
預設情況下,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 的儲存提供者。
先決條件
- S3 Storage 帳戶 或其他 S3 相容儲存服務,例如 MinIO
使用 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 專案
- 一個 bucket,請參閱官方 Google Cloud 文件:https://cloud.google.com/storage/docs/creating-buckets。
獲取金鑰檔案
Google Cloud SDK 通常使用「金鑰檔案」。如果你不熟悉 Google Cloud,這可能是最具挑戰性的部分。以下是獲取方法:
- 前往服務帳戶頁面:https://console.cloud.google.com/iam-admin/serviceaccounts
- 建立帳戶,輸入名稱,然後繼續。
- 在下一步中,選擇「Storage Object User」角色。你可以使用篩選器找到它。
- 完成帳戶建立後,前往帳戶詳細資訊頁面並選擇「金鑰」標籤。
- 點擊「新增金鑰」,選擇「建立新金鑰」,在對話框中選擇「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。