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 检索权限信息?的主要内容,如果未能解决你的问题,请参考以下文章
Azure CDN URL使用令牌身份验证和Blob存储SAS重写规则
将数据从 Azure Blob 存储导入 AzureSQL PaaS 的方法
使用 SAS 将文件从 Azure Blob 存储下载到浏览器
将文件从浏览器上传到 Azure Blob 存储,无需 SAS 密钥