如何处理api中的文件流
本文关键字:文件 api 何处理 处理 | 更新日期: 2023-09-27 18:06:16
如何处理api中的文件流?
假设我需要调用这个api 10次。
[HttpGet("{fileName}")]
public async Task<IActionResult> Get(string fileName)
{
var res = File.Open(path, FileMode.Open);
var file = File(res, "application/zip", fileName);
return file;
}
在api方法返回流之前我不能处理流。
当我第二次调用它时,我将得到异常:
进程无法访问文件"C:'test'example.zip",因为它是正在被另一个进程使用
首先,记住并发性和线程安全。(许多请求可以同时传递给你的控制器。在这种情况下,如果你正在写一些东西到文件-应用程序的行为可能是错误的)。如果您不写入文件(只读取),那么您可以为其他线程指定共享模式,如下所示:
using(var file = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)){
//your code goes here
}