我制作了MVC5版本的文件上传服务器,它接受多部分请求并直接流到Azure File Share,而没有临时文件或字节数组,效果很好。这是基于MultipartFormDataRemoteStreamProvider框架的,并且可能仅是一次处理多个1-2GB大文件的方式,而不会崩溃S1级的App Service。
我一直试图将MVC5转换为ASP Core失败。
我发现MultipartFormDataRemoteStreamProvider框架不再适用于Core。然后,我跟随https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-2.1。如果section.Body.CopyToAsync(targetStream)处的targetStream是FileStream或MemoryStream,则此示例可以正常工作。如果我将其替换为CloudFileStream,则会在Azure File Share上创建一个文件,但内容以00(十六进制)填充。相同的CloudFileStream(CloudFile.OpenWrite(size))可以在我以前的MVC5项目中完美运行。