ASP.NET Core 3-响应压缩自定义标头

时间:2019-11-19 09:50:32

标签: c# asp.net-core blazor

我正在尝试确定是否可以在自定义响应标头中发送pre-compressed内容长度。

我正在创建Blazor客户端服务,由于要获取访问权限,浏览器需要下载大量文件,因此我希望在首次加载时显示某种形式的进度指示器。

通过BrotliCompressionProvider进行压缩-从理论上讲,这会删除Content-Length响应头(尽管并非在所有情况下)。

我关心的文件是通过_framework文件夹分发的文件-我认为这些文件可以作为StaticFile处理?

在客户端,我有一些javascript正在查看每个XHR请求并检查进度(接收到的总字节数显示为未压缩状态)。这意味着即使提供了Content-Length,由于数据不匹配也无法计算出长度。

我的目的是发送一个包含预压缩文件大小的客户响应标头,以便我能够正确计算下载进度。

我尝试过:

  • 插入中间件,该中间件将在响应开始时添加响应头,但是由于它是WriteOnlyStream而无法读取主体的长度
  • 创建了一个自定义压缩提供程序,可以在其中访问未压缩的流-但不确定如何从那里更新响应头。

任何对此的想法都会非常有益

0 个答案:

没有答案