gpt4 book ai didi

c# - 如何向 Azure 存储 blob 上传添加身份验证

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

我正在尝试将图像上传到 Azure Blob 存储。我正在使用 .Net Core 和 Azure.Storage.Blobs v12.8.0。

以下代码是我到目前为止所拥有的。

try
{
var documentByteArray = // a valid byte array of a png file
var blobUri = new Uri("https://mystorageaccount.blob.core.windows.net/images/myfile.png");

BlobClient blobClient = new BlobClient(blobUri);

using (MemoryStream stream = new MemoryStream(documentByteArray))
{
await blobClient.UploadAsync(stream, true, default);
await blobClient.SetHttpHeadersAsync(new BlobHttpHeaders
{
ContentType = "image/png"
});
}
}
catch (Exception ex)
{
//
}

...但可以预见的是,它会失败,并出现异常 服务器无法验证请求。请参阅 www-authenticate header 中的信息。。我说可预测是因为我没有添加任何身份验证...

这就是问题/问题。如何添加身份验证以便上传?

我知道我可以使用访问 key - 但如何使用?我在 MS 文档中找不到任何示例。

任何见解都值得赞赏。

最佳答案

如果您有权访问 Azure 门户,则可以获得存储帐户的连接字符串(在“访问 key ”部分下)。

获得连接字符串后,可以使用以下代码:

var connectionString = "your-storage-account-connection-string";
var containerName = "images";
var blobName = "myfile.png";

var blobClient = new BlobClient(connectionString, containerName, blobName);
//do the upload here...

其他选项是使用存储帐户名称和访问 key (您也可以从 Azure 门户获取它)。你会做类似的事情:

var accountName = "account-name";
var accountKey = "account-key";
var blobUri = new Uri("https://mystorageaccount.blob.core.windows.net/images/myfile.png");
var credentials = new StorageSharedKeyCredential(accountName, accountKey);
var blobClient = new BlobClient(blobUri, credentials);
//do the upload here...

您可以在此处找到有关 BlobClient 构造函数的更多信息:https://learn.microsoft.com/en-us/dotnet/api/azure.storage.blobs.blobclient?view=azure-dotnet .

关于c# - 如何向 Azure 存储 blob 上传添加身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66476806/

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