如下所示,配置静态文件中间件,用于访问应用程序根目录video文件夹的文件
var path = Path.Combine(Directory.GetCurrentDirectory(), "video");
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(path),
RequestPath = "/video",
OnPrepareResponse = context =>
{
var provider = new PhysicalFileProvider(path);
var contents = provider.GetDirectoryContents(string.Empty);
Console.WriteLine($"files:{string.Join(",", contents.Select(f => f.PhysicalPath))}");
Console.WriteLine($"Get video requset from {context.Context.Request.Path}");
context.Context.Response.Headers.Append("Cache-Control", $"public, max-age={3600}");
}
});
本地调试没有问题,可以通过video/1.mp4,可正常获取静态文件。
构建镜像,容器中运行,未挂载数据盘时也可以正常访问。
但是挂载NFS盘映射video目录后,无法访问。进入容器内部,目录映射无误。
从日志上看,可以接收到文件请求,亦可以打印映射的数据盘的目录文件,但无数据返回
进入容器内可以访问对应的文件吗?
可以的
@「圣杰」: 响应的状态码是什么?
没有结果返回,请求一直处于pending状态。
把NFS盘换成云硬盘就OK了,猜测是NFS盘的访问限制导致的,有时间在研究了,先行谢过。
写个action,直接file.read 这个文件能输出返回么
建议更详细描述一下
– dudu 5年前@dudu: updated
– 「圣杰」 5年前