gpt4 book ai didi

.net - 使用适用于 .NET 的 Azure Blob 存储客户端库 v12 下载 Blob

转载 作者:行者123 更新时间:2023-12-02 05:52:47 27 4
gpt4 key购买 nike

我正在使用 Azure.Storage.Blobs 版本=12.4.1。我有一个 REST 端点,想用它从存储帐户下载 blob。

我需要将结果流式传输到 HttpResponseMessage,但我不想使用 MemoryStream。我想将结果直接传输到调用客户端。有没有办法实现这一点。如何获取HttpResponseMessage内容中下载的blob?我不想使用 MemoryStream,因为会有很多下载请求。

BlobClient 类有一个方法 DownloadToAsync,但它需要 Stream 作为参数。

        var result = new HttpResponseMessage(HttpStatusCode.OK);

var blobClient = container.GetBlobClient(blobPath);
if (await blobClient.ExistsAsync())
{
var blobProperties = await blobClient.GetPropertiesAsync();

var fileFromStorage = new BlobResponse()
{
ContentType = blobProperties.Value.ContentType,
ContentMd5 = blobProperties.Value.ContentHash.ToString(),
Status = Status.Ok,
StatusText = "File retrieved from blob"
};

await blobClient.DownloadToAsync(/*what to put here*/);
return fileFromStorage;
}

最佳答案

您可以简单地创建一个新的内存流并将 blob 的内容下载到该流。

类似于:

        var connectionString = "UseDevelopmentStorage=true";
var blobClient = new BlockBlobClient(connectionString, "test", "test.txt");
var ms = new MemoryStream();
await blobClient.DownloadToAsync(ms);

ms 将获得 blob 的内容。使用前不要忘记将内存流的位置重置为 0

关于.net - 使用适用于 .NET 的 Azure Blob 存储客户端库 v12 下载 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61653422/

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