【发布时间】:2021-10-24 08:16:49
【问题描述】:
我正在尝试创建一个 ASP.NET API 端点,它接受 multipart/form-data POST 请求,在流中处理它,并使用 GridFS 流上传将其异步上传到 MongoDB。本质上,我不想在 API 服务器的磁盘上缓冲整个文件,而是尽可能少地在内存中运行它。
到目前为止,我一直在查看各种文档(例如 this 和 this),试图了解它是如何链接在一起的,但我一直被诸如过时的库和缺少一些解释的困扰MultipartReader 之类的类我不是很懂。
我的代码目前有一个服务类来处理上传到 MongoDB 的方法如下:
public async Task<string> UploadFromStreamAsync(Stream stream, string filename)
{
var id = await _bucket.UploadFromStreamAsync(filename, stream);
return id.ToString();
}
我还有一个 UploadsController 类,它扩展了 ASP.NET 的 ControllerBase 并提供了一种处理 HTTP POST 请求的方法。如何连接这两个类,以便控制器拾取上传部分并将它们以流的形式传递给上传服务,以便文件可以在上传到 API 服务器的同时上传到 MongoDB?
我使用的是 ASP.NET 版本 5。
【问题讨论】:
标签: asp.net mongodb .net-5 gridfs c#-9.0