簡體   English   中英

使用WebApi保護Azure存儲中的文件訪問

[英]Securing file access in Azure Storage using WebApi

我已經開發了一個應用程序,用戶可以上傳文件並彼此共享。 這些文件是每個用戶的一些私人文件,而公共文件(例如個人資料圖片)則是這些文件。 我正在將文件存儲在Azure文件存儲中。

假設我有一種方法來檢索具有其ID的文件:我已經在WebApi控制器中的文件訪問方法中實現了權限。

Azure文件存儲是否適合此方案?

從Azure存儲檢索文件的最佳方法是什么? 是否應該在服務器端讀取文件(使用Azure .NET SDK)並將其流式傳輸到客戶端? 有什么方法可以避免在WebApi中流式傳輸文件,然后客戶端可以直接從Azure文件存儲訪問文件(考慮權限)?

謝謝

Azure文件存儲主要用於允許將舊版應用程序提升和遷移到雲中。 對於您的問題,我建議結合使用Blob存儲和SAS令牌 使用SAS令牌,您可以在Blob級別上控制訪問權限。 這樣就避免了在將文件中繼給最終用戶之前先在Web服務器上獲取文件的需要。

Azure文件和Azure Blob存儲均支持SAS和REST訪問。 Azure文件支持生活和轉變之外的其他關鍵方案。 盡管有些陳舊,但本文( https://blogs.msdn.microsoft.com/windowsazurestorage/2014/05/12/introducing-microsoft-azure-file-service/ )解釋了Azure Blob與Azure Files與Windows Azure之間的區別。 Azure磁盤。 您還應該考慮一些因素,例如共享的大小限制,文件夾結構,本地安裝到VM的能力,最大文件/對象大小,吞吐量要求,價格,SMB / REST支持等。如果仍有疑問,請發送通過電子郵件發送到microsoft.com上的azurefiles,我們將很樂意查看您的方案並推薦適合您的使用方案的選項。

據我所知,我們可以使用Azure blob存儲來存儲您的文件。 Azure blob存儲容器提供三種訪問級別:完全公共讀取訪問,僅針對blob的公共讀取訪問,無公共讀取訪問。 有關更多詳細信息,請參閱本文 對於您的情況,請將私有文件保存在“沒有公共讀取權限”中,並將公共文件保存在“僅對Blob的公共讀取權限”中。 這樣用戶無法訪問您的私人文件,但可以讀取您的公共文件。 如果您想與他人共享私人文件,請嘗試LoekD提到的SAS。 如果要使服務器端的SAS令牌過期。 請嘗試使用SAS策略執行此操作。 閱讀本文以獲取更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM