在c#中通过HTTP/REST发布大文件,而不将文件加载到内存中
本文关键字:文件 加载 内存 HTTP REST 布大 | 更新日期: 2023-09-27 17:50:32
我想上传一个大文件作为标准的多部分帖子消息。然而,我看到的所有c#示例通常都使用字节数组(这需要将整个文件加载到内存的内容中)。我可以看到有一个StreamContent类型,但我不清楚在多部分上传中嵌入它会以最小的内存影响流请求。
这是我的想法。
using (HttpRequestMessage request = new HttpRequestMessage (HttpMethod.Post, uploadURL)) {
MultipartFormDataContent multiPartContent = new MultipartFormDataContent ("----Abs23AawqrrqTbbSWpppo8--");
StreamContent streamContent = new StreamContent (new FileStream(path, FileMode.Open));
streamContent.Headers.Add ("Content-Type", "video/mov");
streamContent.Headers.Add ("Content-Length", new FileInfo(path).Length.ToString() );
multiPartContent.Add (streamContent, "bigMovie.mov", "bigMovie.mov");
request.Content = multiPartContent;
using (HttpResponseMessage response = await client.SendAsync (request)) {
// check status code
}
}
这是正确的方式来处理多部分上传一个大文件,将太大加载到内存?
用FTP的方式会更有效率。FTP代码还支持恢复模式。是更有效的文件上传协议