這是鐵人賽相關文章,影片會在活動開始後發布
我很喜歡使用 Firebase Storage,相對於 AWS S3 來說,Firebase Storage 的設定、管理更加容易,而且還有提供每日免費額度,相當適合小型專案使用,而我的 Blog 圖片來說,絕大部分也都是上傳到 Firebase Storage。
本篇將會介紹 Firebase Storage 及設定流程,並在後方附上相關程式碼以供直接運用。
進入 Firebase Console 選擇新增專案,輸入名稱後可以一直繼續到底(分析可以取消就是了,但不影響運作)。
專案建立以後,在畫面的左上方,點選齒輪符號,按下專案設定。
其中找到「服務帳戶」,下方可以建立新的私密金鑰,私密金鑰是採用 JSON 提供,僅會提供一次,請確實地找地方儲存,並且避免遺失及落入他人手中。
在左側選單,點選 Storage。
接下來會在啟用前有基本的設定。
接下來可以選擇地區,一樣依據你服務的用戶位置做選擇。
建立後,可以看到 gs://...
的路徑,請先複製起來,在後面的環境變數中需要填寫這段路徑。
因為預設的 Storage 是無法被直接存取的,因此需要調整規則,讓檔案直接公開能夠讓任何人存取。
切換到「Rules」分頁,將新的規則貼入(附在下方),接下來按下「發布」。
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
// allow read, write: if request.auth!=null;
allow read, write: if true;
}
}
}
回到程式碼
在此有提供完整的 Node.js 程式碼,依據需求將 Firebase Storage 申請的資料填入 .env
即可(請參照 .env.sample
)。
完整範例:https://github.com/Wcc723/node-ironman-sample-2023/tree/feature/firebase-storage-upload
如果在開發上有問題,建議參考本影片,會帶你從頭開始申請並上傳圖片喔:https://youtu.be/H4GmskFhSJQ