【发布时间】:2020-08-22 11:47:40
【问题描述】:
我正在使用 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;
}
【问题讨论】:
标签: .net azure azure-storage azure-blob-storage azure-sdk