RestSharp在上传时将整个文件加载到内存中。怎么避免呢?

时间:2012-01-24 14:30:17

标签: c# .net http mono restsharp

我在Mono项目中使用RestSharp来上传一些文件,我注意到当上传大文件时,内存会大幅增加。

查看RestSharp source code我注意到FileParameter需要一个字节数组,这意味着它确实将文件加载到内存中。

我做错了吗? RestSharp有没有办法不这样做?我可能正在上传非常大的文件,所以从内存中上传它们不是一种选择。

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

2 个答案:

答案 0 :(得分:4)

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

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

Here's an example for writing to the stream

答案 1 :(得分:4)

我在找到this line之后放弃了,所以请求正文总是被加载到内存中,这是不幸的,所以我构建了一个简单的解决方案来根据this question的代码和来自Apache HttpClient library的代码进行文件上传调试here

如果有人感兴趣,可以使用来源{{3}}。