RestSharp在上传文件时将整个文件加载到内存中。如何避免这种情况?

问题描述 投票:7回答:2

我在一个Mono项目中使用RestSharp上传一些文件,我发现当上传一个大文件时,内存会大幅增长。

观察 RestSharp源码 我确实注意到FileParameter期望一个字节数组,这意味着它真的将文件加载到内存中。

我是不是做错了什么?有没有办法让RestSharp不这样做?我可能会上传非常大的文件,所以,从内存中上传它们是不可能的。

欢迎任何帮助(包括告诉我使用另一个单声道上可用的HTTP库)。

c# .net http mono restsharp
2个回答
4
投票

使用 AddFile(name, writer, filename) 过载。

对于 writer 参数,传递一个 Action<Stream> 直接写入请求体流。不要关闭流。

下面是一个向流写入的例子。.


4
投票

我发现后就放弃了 这一行,所以请求体总是被加载到内存中,这是很不幸的,所以我建立了一个简单的解决方案来做文件上传,基于代码来自于 这个问题 并从调试 Apache HttpClient库.

如果有人有兴趣,可以提供源码 此处.

© www.soinside.com 2019 - 2024. All rights reserved.