gpt4 book ai didi

c# - 从 Uri 和 BlobServiceClient 创建 Azure BlobClient

转载 作者:行者123 更新时间:2023-12-02 02:19:59 29 4
gpt4 key购买 nike

在 Azure 存储 v12 SDK 中,如何使用 Blob URI 和 BlobServiceClient 创建 Blob 客户端?

在 v11 中,我们可以通过以下方式做到这一点:

var cloudBlockBlob = new CloudBlockBlob(<Blob URI>, <Cloud Blob Client>);

我设法通过以下黑客方式做到这一点,我必须通过最初创建 blobClient 对象来获取容器和客户端名称。我无法使用初始客户端访问 blob,因为收到 AuthenticationFailed 错误。

var sasUri = _blobServiceClient.GenerateAccountSasUri(
AccountSasPermissions.Read, DateTimeOffset.UtcNow.AddDays(10),
AccountSasResourceTypes.Object);
var sasCredential = new AzureSasCredential(sasUri.ToString());

// this is not valid as I get an Authentication Exception if I try to access from here
var blobClient = new BlobClient(blobUri, sasCredential);

BlobContainerClient blobContainerClient =
_blobServiceClient.GetBlobContainerClient(blobClient.BlobContainerName);
blobClient = blobContainerClient.GetBlobClient(blobClient.Name);
BlobDownloadInfo blobDownloadInfo = await blobClient.DownloadAsync(cancellationToken);

我很确定我在这里做错了什么,并且有更好的方法来做到这一点。如何在 v12 中正确实现此目的?

最佳答案

只需更改这行代码:

var sasCredential = new AzureSasCredential(sasUri.ToString());

var sasCredential = new AzureSasCredential(sasUri.ToString().Split('?')[1]);

关于c# - 从 Uri 和 BlobServiceClient 创建 Azure BlobClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66575171/

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