1

在我的網站,用戶可以上傳兩種文件:Azure的斑點文件存儲策略

  • 文檔(DOC,PDF,JPG,ZIP)
  • 頭像圖片(JPG格式)

我開始創建一個私人blob容器。 因此,我可以檢查請求文件的用戶是否有權下載它

問題出現的時候,在網站公共部分的頁面中,我必須顯示所有用戶的頭像圖片。 在這種情況下,ther不需要檢查任何內容,但是頭像圖像保存在私人文檔的相同blob容器中。

所以,第一個解決方案是創建一個簡單的動作,接收圖片的文件名,然後從blob中獲取它並推送到流出。 但是這樣做我給惡意用戶使用這個腳本請求保留文檔的能力。(簡單地詢問文檔文件名而不是頭像圖像文件)

什麼是最佳解決方案? 創建兩個不同的blob容器(一個私人和一個公共)? 其他解決方案?

編輯

使用元數據標記公開的文件?

回答

4

我會建議創建兩個不同的容器。不僅如此,我還建議你不要只是推送頭像到流中,而是將完整的blob網址發佈到源代碼中。因此,您將可以稍後使用CDN!使用「透明代理」操作方法使公共blob無意義。 至於私人blob - 我認爲你的方法很好,但在服務blob內容之前你必須執行一些安全檢查。

+0

是的,我忘記寫私人blob的訪問是由檢查權限的腳本調解 –

+0

Still。我建議將公共文件放在公共容器中,甚至設置/啓用CDN,並將公共文件CDN-ed。 – astaykov