📅  最后修改于: 2023-12-03 15:06:15.736000             🧑  作者: Mango
Azure Blob storage 是一种云存储服务,它提供了高可用性、可扩展性和安全性,以存储和处理海量非结构化和半结构化数据。
SAS(Shared Access Signature)令牌是一种在 Azure Blob storage 中使用的一种低权限访问控制方式。通过使用 SAS,用户可以对 Blob 进行安全的共享和访问控制。本文将介绍如何为 Azure Blob 生成 SAS 令牌。
在生成 SAS 令牌之前,您需要完成以下准备工作:
服务级 SAS 令牌适用于单个 Blob。下面是如何为 Blob 生成服务级 SAS 令牌的基本步骤:
var sasBuilder = new BlobSasBuilder()
{
BlobContainerName = "<container-name>",
BlobName = "<blob-name>",
Resource = "b",
ExpiresOn = DateTimeOffset.UtcNow.AddHours(1),
Protocol = SasProtocol.Https,
};
sasBuilder.SetPermissions(BlobSasPermissions.Read);
var sasToken = sasBuilder.ToSasQueryParameters(GetAccountSasCredentials()).ToString();
上述示例代码使用 BlobSasBuilder 类来生成服务级 SAS 令牌。在这里,BlobName 属性代表要操作的 Blob 名称,BlobContainerName 属性代表存储 Blob 的容器名称。
在设置了访问权限和有效时间之后,可以将 sasBuilder 生成的 SAS 令牌添加到 URI 末尾。以下是如何使用生成的 SAS 令牌访问服务级 SAS:
https://<account-name>.blob.core.windows.net/<container-name>/<blob-name>?<SAS-token>
容器级 SAS 令牌适用于特定容器中的所有 Blob。下面是如何为容器生成容器级 SAS 令牌的基本步骤:
var sasBuilder = new BlobSasBuilder()
{
BlobContainerName = "<container-name>",
Resource = "c",
ExpiresOn = DateTimeOffset.UtcNow.AddHours(1),
Protocol = SasProtocol.Https,
};
sasBuilder.SetPermissions(BlobContainerSasPermissions.List);
var sasToken = sasBuilder.ToSasQueryParameters(GetAccountSasCredentials()).ToString();
在上述示例中,BlobContainerName 属性表示要限制访问的 Blob 容器的名称。设置 BlobContainerSasPermissions.List 来授予列出 Blob 的权限。
容器级 SAS 令牌的用法与服务级 SAS 令牌类似。将 SAS 令牌添加到 URI 中,例如:
https://<account-name>.blob.core.windows.net/<container-name>?<SAS-token>
通过 SAS 令牌,您可以实现对 Azure Blob 存储中的 Blob 进行可控的共享和访问控制。 在本文中,我们介绍了如何使用 BlobSasBuilder 类在 Azure Blob 存储中生成服务级和容器级 SAS 令牌。