Blazor 从 URL 下载 Azure Blob
Posted
技术标签:
【中文标题】Blazor 从 URL 下载 Azure Blob【英文标题】:Blazor Download Azure Blob from URL 【发布时间】:2021-10-29 15:55:19 【问题描述】:我有一个 Blazor“下载按钮”组件,它将从我的 API 中获取一个 URI,其中包含 Azure Blob 存储中 Blob 的绝对 URI。从 API 返回 URI 后,我会调用一个 JS 函数来创建您看到的 a href。当单击 a href 文件时,文件被打开而不是被下载。有谁知道我做错了什么?
JS 代码:我在我的组件中使用 JS 隔离
export function Download(url, fileName)
let a = document.createElement('a');
a.href = url;
a.download = fileName;
document.body.appendChild(a);
产生一个href
<a href="https://myBlobStorage.blob.core.windows.net/filePath.txt?sv=sharedAccessToken" download="FileName.txt"></a>
谢谢你, 特拉维斯佩特里
【问题讨论】:
我能够正确下载文件。我用的是 Chrome 浏览器。你用的是哪个浏览器? @GauravMantri 我正在使用 FireFox。我会在 chrome 中尝试一下。 @GauravMantri 我也试过 Chrome 和 Edge 他们只打开 .txt 文件。 【参考方案1】:我最终使用 Blazor 库从服务器下载文件流。
图书馆:https://github.com/arivera12/BlazorDownloadFile
我更改了我的服务器以返回文件响应:
return File(blob.DownloadStreaming().Value.Content, blob.GetProperties().Value.ContentType);
然后在 Blazor 中调用下载代码:
var resp = await _httpClient.GetAsync($"URL");
await BlazorDownloadFileService.DownloadFile("test.txt", await resp.Content.ReadAsByteArrayAsync(), resp.Content.Headers.ContentType.ToString());
【讨论】:
以上是关于Blazor 从 URL 下载 Azure Blob的主要内容,如果未能解决你的问题,请参考以下文章
使用 FILE STORAGE AZURE 将文件下载为字节数组
Azure 静态 Web 应用 Blazor WASM .Net Core API 和标识 - 无法从“_configuration”加载设置