我有一个由App Sevice托管的类库项目.Net框架。并且该项目有一些指向存储在Blob存储中的媒体的链接。我需要一种方法来授权我的站点使用连接字符串或其他内容访问blob存储上的媒体。
有什么想法吗?
答案 0 :(得分:0)
根据您的要求,我认为您可以使用shared access signatures
。
共享访问签名(SAS)提供对存储帐户中资源的安全委派访问,而不会损害数据的安全性。使用SAS,您可以精确控制客户端如何访问数据。您可以控制客户端可以访问哪些资源,它们对这些资源具有哪些权限以及SAS有效的时间以及其他参数。
您可以在Azure Portal
中创建它:
有关更多详细信息,请参阅此官方document。
您还可以使用.NET为容器或Blob创建user delegation SAS
,代码示例如下:
// Create a SAS token that's valid for one hour.
BlobSasBuilder sasBuilder = new BlobSasBuilder()
{
BlobContainerName = containerName,
BlobName = blobName,
Resource = "b",
StartsOn = DateTimeOffset.UtcNow,
ExpiresOn = DateTimeOffset.UtcNow.AddHours(1)
};
// Specify read permissions for the SAS.
sasBuilder.SetPermissions(BlobSasPermissions.Read);
// Use the key to get the SAS token.
string sasToken = sasBuilder.ToSasQueryParameters(key, accountName).ToString();
// Construct the full URI, including the SAS token.
UriBuilder fullUri = new UriBuilder()
{
Scheme = "https",
Host = string.Format("{0}.blob.core.windows.net", accountName),
Path = string.Format("{0}/{1}", containerName, blobName),
Query = sasToken
};
有关如何访问和操作文件的信息,请参阅此官方document。