gpt4 book ai didi

c# - 值不能为空。 (参数 'sharedKeyCredential')当我们尝试使用V12的GenerateSasUri()方法创建SAS Uri时

转载 作者:行者123 更新时间:2023-12-03 05:21:10 28 4
gpt4 key购买 nike

我们正在将代码从 V11 迁移到使用 azure storage v12 客户端库 (Azure.Storage.Blobs 12.12.0)。当我们尝试使用GenerateSasUri()方法创建SAS Uri时,出现下面提到的异常。
异常:“值不能为空。(参数'sharedKeyCredential')”

this.blobContainerClient = new BlobContainerClient(
new Uri($https://{storageAccountName}.blob.core.windows.net/{containerName}),
new ManagedIdentityCredential(managedIdentityAppId));

var blobClient = blobContainerClient.GetBlobClient(blobName);

BlobSasBuilder sasBuilder = new()
{
BlobContainerName = containerName,
BlobName = blobName,
Resource = "b",
StartsOn = DateTime.UtcNow.AddMinutes(-15),
ExpiresOn = expirationTimeUtc
};
sasBuilder.SetPermissions(requestedPermission);

return blobClient.GenerateSasUri(sasBuilder);

最佳答案

Thomas指出了这个问题的原因。在代码中最好处理的是检查您的 blobclinet 是否能够使用 CanGenerateSasUri 创建 sas。

this.blobContainerClient = new BlobContainerClient(
new Uri($https://{storageAccountName}.blob.core.windows.net/{containerName}),
new ManagedIdentityCredential(managedIdentityAppId));

var blobClient = blobContainerClient.GetBlobClient(blobName);

// Check whether this BlobClient object has been authorized with Shared Key.
if (blobClient.CanGenerateSasUri)
{

BlobSasBuilder sasBuilder = new()
{
BlobContainerName = containerName,
BlobName = blobName,
Resource = "b",
StartsOn = DateTime.UtcNow.AddMinutes(-15),
ExpiresOn = expirationTimeUtc
};
sasBuilder.SetPermissions(requestedPermission);

return blobClient.GenerateSasUri(sasBuilder);
}
else
{
Console.WriteLine(@"BlobClient must be authorized with Shared Key
credentials to create a service SAS.");
return null;
}

关于c# - 值不能为空。 (参数 'sharedKeyCredential')当我们尝试使用V12的GenerateSasUri()方法创建SAS Uri时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72236755/

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