gpt4 book ai didi

c# - 如何从连接字符串或 BlobServiceClient 获取帐户名和帐户 key ?

转载 作者:行者123 更新时间:2023-12-03 06:52:37 25 4
gpt4 key购买 nike

我的配置文件中有一个 Azure Blob 存储连接字符串,例如:

"Storage": "DefaultEndpointsProtocol=https;AccountName=xyz;AccountKey=abc==;EndpointSuffix=core.windows.net"

在应用程序中,这用于实例化 BlobServiceClient,这是在 Startup.cs 中发生的注册:

  builder.Services.AddAzureClients(options => options.AddBlobServiceClient(configuration.GetValue<string>("Storage")));

这可行,并且可以将 BlobServiceClient 注入(inject)到服务的构造函数中并使用它。

现在,对于新场景,我需要生成 Sas token 。我想使用这个解决方案Generate SAS token c# programmatically但它需要借助 2 个参数创建一个新的 StorageSharedKeyCredential:accountNameaccountKey

问题

由于这些值存在于连接字符串中,我可以以某种方式解析它来获取它们,但可能有一种更智能的方法来检索单独的 accountNameaccountKey 值来自连接字符串还是来自 BlobServiceClient 实例?

或者我可以通过其他方式获取 StorageSharedKeyCredential,而不是从 accountName/accountKey 手动创建它(例如从连接字符串)?

<小时/>

Gaurav Mantri 的回答更新

var blobSasBuilder = new BlobSasBuilder()
{
BlobContainerName = "containerName",
BlobName = "fileName",
ExpiresOn = DateTime.UtcNow.AddMinutes(15),
};

blobSasBuilder.SetPermissions(BlobSasPermissions.Read | BlobSasPermissions.Write);

最佳答案

您可以使用BlobBaseClient.GenerateSasUri方法。本质上你的代码会是这样的:

var blobClient = new BlobBaseClient(connectionString, containerName, blobName);
var sasUri = blobClient.GenerateSasUri(/*blob SAS builder parameters*/);

关于c# - 如何从连接字符串或 BlobServiceClient 获取帐户名和帐户 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73420499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com