Azure存储:有没有办法从SAS URL检索权限信息?

时间:2014-10-14 01:26:15

标签: azure azure-storage

在我的函数中,我得到一个SAS令牌作为输入。我需要决定是否从令牌授予删除权限。

我试图像这样解析它:

var permission = containerSasUrl.Split('&').Where(param => param.StartsWith("sp=")).ToArray(); 
if (!permission[0].Contains('d'))
{
    throw new StorageException(string.Format("Unable to delete files from {0}, check the storage permissions.", containerSasUrl));
}

但是,由于Url在访问策略中嵌入了权限信息,因此失败了。像:

https://xxx.blob.core.windows.net/test?sr=c&sv=2014-02-14& SI = DownloadToolPolicy &安培; SIG = NMczy2Dn9uktwIaP2qIxqLSnZteyOd%2FAffgawDLfV7g%3D

我可以处理的其他任何路线?

2 个答案:

答案 0 :(得分:1)

不幸的是,不,至少是为了检查SAS中是否包含delete权限。起初我以为我可以尝试删除不存在的blob并捕获异常,如果SAS令牌没有此权限,我会收到403错误但是我遇到404错误两种情况,即当blob存在且不存在且SAS令牌没有删除权限时。

答案 1 :(得分:0)

必须进行试用下载&删除以解决此问题。 欢迎使用更优雅的解决方案。