azure-storage - 获取 Azure 存储帐户级别 SAS 的到期日期?
问题描述
我正在寻找一种方法来查找 Azure存储帐户上任何过期或过期的 SAS 签名。
使用 C#,我检查了 CloudStorageAccount 类的所有公共属性和方法,我还在 ILSpy 和 Azure 资源浏览器中查看了这个类 - 只是看不到检索 SAS 到期日期/时间的方法。
void Main()
{
CloudStorageAccount account = new CloudStorageAccount(new
StorageCredentials(GetName(), GetKey()), true);
account.Dump();
CloudBlobClient client = account.CreateCloudBlobClient();
foreach (CloudBlobContainer container in client.ListContainers())
{
var sabp = new SharedAccessBlobPolicy();
var sas = container.GetSharedAccessSignature(sabp);
Console.WriteLine(container.Name);
Console.WriteLine(sas);
Console.WriteLine();
}
}
internal string GetName() {return @"myaccountname";}
internal string GetKey() {return @"myaccountkey";}
没有错误,但也没有办法(我可以看到)获得帐户级 SAS。
注意我不想要任何 blob SAS,而是针对容器设置 SAS。谢谢
解决方案
如果您想知道您的帐户级 SAS 是过期还是过期,基于此文档,您只需检查SignedExpiry
参数即可。在 SAS 中,它的名字是se
.
尝试以下代码以获得具有 blob 对象读取权限并具有 1 天生命周期的帐户级 SAS:
static void Main(string[] args)
{
CloudStorageAccount account = new CloudStorageAccount(new StorageCredentials("<storage account name>", "<storage key>"), true);
var accesspolicy = new SharedAccessAccountPolicy()
{
Permissions = SharedAccessAccountPermissions.Read,
Services = SharedAccessAccountServices.Blob,
SharedAccessExpiryTime = DateTime.UtcNow.AddDays(1),
ResourceTypes = SharedAccessAccountResourceTypes.Object
};
var accountSAS = account.GetSharedAccessSignature(accesspolicy);
Console.WriteLine(accountSAS);
Console.ReadKey();
}
结果 :
如您所见,se
参数在那里并指示此 sas 将在 1 天后过期。
推荐阅读
- reactjs - 从 chrome 扩展执行 web3 事务时出错
- npm - gulp-sass npm 错误!在 node-sass@4.9.0 安装脚本失败
- python - 如何检查一个列表的元素是否在另一个列表中(列表大小不同)
- swift - osx DDMathParser - 在字符串中查找函数标记
- node.js - 如何更好地优化我的网站?(PageSpeed Insights)
- javascript - 警告:路径必须是路径名 + 搜索 + 哈希,而不是完整的 UR - react js
- c++ - gcc-8 -Wstringop-truncation 有什么好的做法?
- r - 在 R 中使用 ggplot
- javascript - 想要设置显示/隐藏脚本默认可见
- ruby - Ruby - 带有变量的 Hash.Select