我有一個使用Azure Blob存儲來存儲文檔和圖像的Web應用程序(ASP.NET MVC)。每個用戶都有對blob的特定訪問權限,並且此 存儲在Web應用程序的數據庫中。使用SAS的Azure Blob存儲授權
目前我有一個快速的臨時解決方案,它使用Web應用程序作爲運行授權的中間層,並且如果客戶端具有讀取BLOB的權限, 它首先從Azure中檢索,然後交付給客戶端。這當然不是由於許多原因而進行的最佳方式。
我已經開始使用SAS(共享訪問簽名)重建此部分,但無法找到設置系統的良好來源,該系統可隨着用戶和文件數量的增長而很好地擴展。我期待的用戶數量約爲100個,斑點數量約爲100000.
正如我所看到的,我有兩個選擇。
1)所有文件都有一個存儲在Web應用程序數據庫中的簽名,這用於所有有權訪問該文件的用戶。這將是簡單的方法, 但是,如果用戶由於某種原因不能訪問文件,他們仍然可以訪問文件,如果他們有早期訪問的鏈接。
2)對於每個有權訪問該文件的用戶,所有文件都有特定的簽名。這將使撤銷對文件的訪問變得容易,但簽名的數量將會很大,並且會產生任何副作用嗎?
還有其他選擇嗎?
對此的任何想法都非常感謝!
是否有一個原因,你沒有考慮創建SAS和當它需要? –
我想你的意思是SAS將被生成並添加到傳遞給客戶端的HTML中的URL中?這當然是一種選擇,但對於圖像,它們將以縮略圖(也存儲在Azure Blob存儲中)列出,所以如果我在頁面上有20個圖像,這意味着要在Azure之前生成20個往返才能生成簽名渲染。對? – moccasine
您可以參考我的答案:http://stackoverflow.com/questions/39431608/limiting-account-sas-permission-to-specific-files-in-azure-storage/39432023#39432023 –