我在Mono项目中使用RestSharp来上传一些文件,我注意到当上传大文件时,内存会大幅增加。
查看RestSharp source code我注意到FileParameter需要一个字节数组,这意味着它确实将文件加载到内存中。
我做错了吗? RestSharp有没有办法不这样做?我可能正在上传非常大的文件,所以从内存中上传它们不是一种选择。
欢迎任何帮助(包括告诉我使用单声道提供的另一个HTTP库)。
答案 0 :(得分:4)
使用AddFile(name, writer, filename)
重载。
对于writer
参数,传递直接写入请求正文流的Action<Stream>
。不要关闭流。
答案 1 :(得分:4)
我在找到this line之后放弃了,所以请求正文总是被加载到内存中,这是不幸的,所以我构建了一个简单的解决方案来根据this question的代码和来自Apache HttpClient library的代码进行文件上传调试here。
如果有人感兴趣,可以使用来源{{3}}。