gpt4 book ai didi

azure - 使用 SAS 从 Azure 存储下载 blob

转载 作者:行者123 更新时间:2023-12-03 04:00:55 25 4
gpt4 key购买 nike

我很难弄清楚如何使用 .net 和生成的共享访问签名 token 从 Azure 存储下载 blob。

首先,我能找到的大多数教程都使用 Microsoft.Azure.Management.Storage nuget 包,该包已弃用。相反,我使用最新的 Azure.Storage.Blobs 包。

到目前为止我有以下代码。我不知道如何处理生成的 SAS token 。如何从那里下载 blob?

  [HttpGet]
public async Task<IActionResult> Download([FromQuery] string blobUri)
{
BlobServiceClient blobServiceClient = new BlobServiceClient(this.configuration.GetConnectionString("StorageAccount"));


// Create a SAS token that's valid for one hour.
BlobSasBuilder sasBuilder = new BlobSasBuilder()
{
BlobContainerName = "my container name",
BlobName = blobUri,
Resource = "b",
StartsOn = DateTimeOffset.UtcNow,
ExpiresOn = DateTimeOffset.UtcNow.AddHours(1)
};

// Specify read permissions for the SAS.
sasBuilder.SetPermissions(BlobSasPermissions.Read);

// Use the key to get the SAS token.
var sasToken = sasBuilder.ToSasQueryParameters(new Azure.Storage.StorageSharedKeyCredential("my account name", "my account key"));



BlobClient blob = blobServiceClient.GetBlobContainerClient("my container name").GetBlobClient($"{blobUri}");
await using (MemoryStream memoryStream = new MemoryStream())
{
await blob.DownloadToAsync(memoryStream);
return File(memoryStream, "file");
}

}

最佳答案

在官方 github 存储库中,您可以找到使用各种身份验证方式的很好的示例。使用sample is called SharedKey中的帐户 key 。还有一个sample to use SAS tokens - 但那些你需要以某种方式生成的。通常您使用帐户 key 来执行此操作...

另一个选项 - 如果可能的话我建议使用的是 AAD (Azure Active Directory)-based aut H。在这种情况下,您不需要帐户 key 或 SAS token 。

请参阅此处了解各种示例: https://github.com/Azure/azure-sdk-for-net/blob/master/sdk/storage/Azure.Storage.Blobs/samples/Sample02_Auth.cs

关于azure - 使用 SAS 从 Azure 存储下载 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62405008/

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