設置 Google Cloud Storage 為 Logto 的文件存儲
設置 Google Cloud Storage 作為 Logto 文件存儲的實踐指南。
默認情況下,Logto Console 使用文本輸入框來處理靜態文件的 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 並嘗試一下。你可以到“登入體驗”部分,試著上傳一個標誌。
如果你覺得這些步驟很複雜,可以考慮使用 Logto 的雲版本。我們替你搞定一切!