2014-01-25 164 views
0

據我所知,在Azure存儲中,我們可以使用基於容器的SAS將訪問權限委託給單個人。Azure CDN每Blob SAS

我需要委派每BLOB訪問,以防止盜鏈。

我們使用Asp.Net MVC。對不起,我的英語:)

編輯:而新的Azure用戶如何創建CDN?

+0

您是否正在尋找單個blob上的SAS? –

+0

是的,你絕對沒錯! –

回答

3

所以你可以在blob上創建一個SAS。該方法與在blob容器上創建SAS的方式類似。由於您使用的是ASP.Net MVC,我假設您想使用.Net Storage Client API在blob上創建SAS。要在blob上創建SAS,只需在您創建的blob對象上調用GetSharedAccessSignature方法即可。

例如,下面的代碼會給你在那裏已經允許用戶下載一個blob一個SAS URL:

var sas = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy() 
    { 
     Permissions = SharedAccessBlobPermissions.Read, 
     SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-5), 
     SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(15), 
    }); 
    return string.Format(CultureInfo.InvariantCulture, "{0}{1}", blob.Uri, sas); 

我寫了一篇博客前張貼一些時間描述上的斑點和容器SAS功能更詳細信息:http://gauravmantri.com/2013/02/13/revisiting-windows-azure-shared-access-signature/

關於您關於CDN的問題,我相信當宣佈新門戶時,創建DSN節點的功能已從Windows Azure門戶中移除。我想你需要等待功能再次出現在門戶網站上。

+0

一次可能存在多少個SAS策略?我們需要將每個blob讀取權限委託給1000個用戶。 –

+1

因此,如果您使用「ad-hoc」SAS令牌,則沒有限制。但是,如果您使用的是策略標識符,則每個blob容器最多可以有5個策略標識符。這意味着如果您定義策略標識符中的所有規則,則每個容器最多可以有5個SAS。 –

+0

非常感謝! –