我在一个Mono项目中使用RestSharp上传一些文件,我发现当上传一个大文件时,内存会大幅增长。
观察 RestSharp源码 我确实注意到FileParameter期望一个字节数组,这意味着它真的将文件加载到内存中。
我是不是做错了什么?有没有办法让RestSharp不这样做?我可能会上传非常大的文件,所以,从内存中上传它们是不可能的。
欢迎任何帮助(包括告诉我使用另一个单声道上可用的HTTP库)。
使用 AddFile(name, writer, filename)
过载。
对于 writer
参数,传递一个 Action<Stream>
直接写入请求体流。不要关闭流。
我发现后就放弃了 这一行,所以请求体总是被加载到内存中,这是很不幸的,所以我建立了一个简单的解决方案来做文件上传,基于代码来自于 这个问题 并从调试 Apache HttpClient库.
如果有人有兴趣,可以提供源码 此处.