我有一个ServiceStack客户端,该客户端调用一个服务,该服务返回100MB至10GB之间的大数据文件。当前,此客户端使用Stream.CopyTo
保存到文件的方法可以在LAN上完美运行。
当客户端通过WAN(除了通过LAN)运行时,如果下载停止或失去连接并继续查看,则恢复下载的能力变得很重要。
该服务支持发送部分文件,但是我不清楚如何在ServiceStack客户端中支持它,即使它是内置的,我也没有意识到。
同样,要复制到另一个文件CopyTo
上的方法不会报告进度,因此,对于大文件来说,可能要花费数小时,并且您无法告知进度。我看过有关报告进度的方法的帖子,但在所使用的类的任何地方都找不到。stream
stream
CopyFrom
我的环境是ServiceStack的最新版本以及Mac OS X上的Mono版本和Windows上的.NET 4.5最新版本。
能够对文件进行不同段的并发下载将是理想的选择,但仅能够恢复下载将是巨大的帮助。
有人可以指出在ServiceStack客户端中执行此操作的最佳方法吗?我发现的大多数示例仅适用于普通的Web客户端,并且已经很旧了,因此想了解一下最新版本的dotnet和mono以及ServiceStack的最佳方法是什么。
如果可能,一个基本的例子将是完美的。
ServiceStack支持部分内容响应以返回以下服务:
return new HttpResult(new FileInfo(filePath), request.MimeType);
return new HttpResult(ms, "audio/mpeg");
return new HttpResult(customText, "text/plain");
直接通过ServiceStack提供的静态文件下载中也提供了部分内容,可让您流mp3下载,或者在需要时使用静态.html,.css,.js等。
有关如何使用ServiceStack的内置HTTP Utils请求部分下载的示例,请参见PartialContentResultTests.cs。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句