Azure Blob 與 Heroku 類型儲存
我正在製作一個將接收圖像的應用程序,然後需要使用 Nodejs 將它們儲存在 SQL DB 中。我需要儲存大量圖像並大量查詢它們(我需要查詢數據庫以查看該圖像是否在其中)
根據我的閱讀,最好將文件保存在文件系統中並將路徑放在數據庫中(更便宜)。
我學會了使用 Heroku 和 Mlab 進行開發,並將 URL 保存到我的數據庫中,這將是我第一次使用 FileSystem。
我閱讀了有關 azure 儲存選項的資訊,一位代表告訴我,我可以使用他們的 blob 服務,這將是一個很好的選擇。但似乎使用他們的服務需要大量學習。我之前為另一個項目嘗試過 azure 和 aws,與僅使用 git 部署到 heroku 相比,它們似乎更複雜,只是選擇要使用的服務和東西以及如何使用它們。
但似乎使用 azure blobs 的定價比使用 Heroku 便宜很多,儘管我很難理解所有這些服務的定價(Heroku DYNOS …)
據我所知,使用 Heroku 我可以製作我的應用程序,使用 fs 模組將文件上傳到伺服器,然後將該路徑保存到我的數據庫中。而要使用 azure blob,我還必須學習如何使用 azure API 並將圖像儲存在 blob 中。我已經閱讀了他們的文件: https ://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-nodejs-v10 並且無法準確找到我如何知道文件在blob 以便我可以將其保存到我的數據庫中,然後如何檢索該文件。
所以我的問題如下:
- 使用 azure 和 azure blob 是我的最佳選擇(最便宜最有效)還是有更好的選擇來滿足我的需要?
- 正如我所看到的那樣,它們是使用 azure 儲存和 blob 的另一層複雜性,這是使用 azure 和 AWS 時的常態(這些雲服務是不是其他的?Heroku 在他們的網頁中也提到了雲,但這些似乎不同的)????
- 學習 blob 是否值得麻煩,還是使用更簡單的東西開始更好?
- 將圖像保存到雲端並將 URL 保存到我的 SQL DB 可行還是太昂貴或效率低下???
我在這裡先向您的幫助表示感謝
我沒有嘗試過 Heroku,但我可以評論 Azure Blobstorage。
我看到的最佳做法是:
將圖像儲存到 blobstorages, 對容器具有匿名只讀訪問權限並將 URL 保存到數據庫。
由於您只有 URL,因此您的應用程序將從 Azure 下載圖像,從而節省伺服器的流量。為每個圖像生成隨機字元串名稱而不是 (1,2,3,… 或 a,b,c,… 或 john,doe,jane,…) 將限制使用者訪問未經授權的圖像。
在 Azure 上創建 Blob 儲存非常簡單。
- 創建資源 (+)
- 選擇儲存帳戶
- 創造
您將從訪問密鑰選項卡中獲得儲存帳戶名稱和密鑰。
在儲存帳戶中,您將看到:Blob、文件、表、隊列。
轉到 Blob:
- 創建一個新容器
- 小心容器的公共訪問級別(我會推薦容器)
- 點擊容器屬性(更多選項圖示…)並獲取Container URL。
如您閱讀的文件中所述,您需要定義
- 儲存帳戶名稱
- 鑰匙
- 容器網址
在您的程式碼中並使用它們。