在我的函数中,我得到一个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
我可以处理的其他任何路线?
答案 0 :(得分:1)
不幸的是,不,至少是为了检查SAS中是否包含delete
权限。起初我以为我可以尝试删除不存在的blob并捕获异常,如果SAS令牌没有此权限,我会收到403
错误但是我遇到404
错误两种情况,即当blob存在且不存在且SAS令牌没有删除权限时。
答案 1 :(得分:0)
必须进行试用下载&删除以解决此问题。 欢迎使用更优雅的解决方案。