前一集介紹了 AWS S3,這是一個完整的儲存物件的服務,但也因為他的完整,所以對於剛入門的開發者來說略顯複雜,這集要介紹的是另一個物件儲存的服務「Firebase Storage」,相對於完整的 S3 來說他更輕巧、簡單,如果你的應用符合以下幾點(以單一應用為基準,而不是帳號),那我會推薦試試看:
如果你的應用符合上述條件,推薦你使用 Firebase Storage,你甚至不需要花任何一毛錢來使用此服務,而且他是依據專案而定,也就是當你有多個應用時,他每一個都是獨立計價(同理,也可能開很多個都不需要付費)。
以我來說,Blog 的圖片都是上傳到 Firebase Storage,部落格每日流量約千人上下(T_T,太久沒更新,所以流量越來越低),每日的 Storage 流量約 1 ~ 3 GB 不等,當低於 1GB 時 “該日就不需要付費”,因此折下來每月的費用就落在 1 美金上下。
上述計價指標時間略有落差,僅供參考,完整的計價可參考 Firebase 文件
但如果你的是中大型專案,流量超過上述所介紹的兩倍,為了未來的擴充性,我就會比較推薦 AWS S3 這類型服務。
影片連結:https://youtu.be/H4GmskFhSJQ
本集範例程式碼:https://github.com/Wcc723/node-ironman-sample-2023/tree/feature/firebase-storage-upload
延伸說明,這是我的個人部落格,針對本篇還有額外的補充說明:https://www.casper.tw/development/2023/09/29/fireabase-storage/
其中比較重要的片段,因為預設的 Storage 是無法被直接存取的,因此需要調整規則,讓檔案直接公開能夠讓任何人存取。可參考影片或部落格的流程,並將此片段加入到「Rules」分頁。
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
// allow read, write: if request.auth!=null;
allow read, write: if true;
}
}
}