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

Posted

技术标签:

【中文标题】Azure 存储:有没有办法从 SAS Url 检索权限信息?【英文标题】:Azure Storage: Is there way to retrieve permission info from an SAS Url? 【发布时间】:2014-10-14 01:26:14 【问题描述】:

在我的函数中,我得到一个 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

我还能走其他路线吗?

【问题讨论】:

【参考方案1】:

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

【讨论】:

正确,我之前试过这条路线。两者都得到 404。:(【参考方案2】:

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

【讨论】:

以上是关于Azure 存储:有没有办法从 SAS Url 检索权限信息?的主要内容,如果未能解决你的问题,请参考以下文章