2014-01-25 121 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

非常感谢! –