C# 通过url访问docker卷
我用c#创建了一个小型webapi,让我的用户可以上传图像。方法如下所示:C# 通过url访问docker卷,c#,docker,asp.net-web-api,docker-volume,C#,Docker,Asp.net Web Api,Docker Volume,我用c#创建了一个小型webapi,让我的用户可以上传图像。方法如下所示: public async Task<IActionResult> CreateXXX(ADto dto) { // Save the image in a docker volume } 公共异步任务CreateXXX(ADto dto) { //将图像保存在docker卷中 } CreateXXX方法将ADto作为参数,该参数包含一些属性,一个是我的图像,一个是base64编码的。我在这里做的基
public async Task<IActionResult> CreateXXX(ADto dto)
{
// Save the image in a docker volume
}
公共异步任务CreateXXX(ADto dto)
{
//将图像保存在docker卷中
}
CreateXXX
方法将ADto
作为参数,该参数包含一些属性,一个是我的图像,一个是base64编码的。我在这里做的基本上很简单:我解码图像,然后,因为我的webapi服务托管在docker容器中,所以我将它保存在docker卷中。一切正常,我可以看到图像保存在我的主机(我映射的卷)上
现在,我在webapi服务上创建了一个get,它将图像返回给客户端。同样,它是包含一些属性的ADto
,一个是磁盘上我的映像路径(我的docker卷)。路径如下所示:/pictures/123456789.jpg
问题是:浏览器应该如何访问资源以显示图像?使用不起作用。(localhost:5001是my webapi的宿主)。客户端浏览器将永远无法访问您的本地文件系统。URL唯一有效的方法是,如果您的Web服务器上有一个将传入请求映射到本地文件系统的处理程序。无论您的应用程序是在docker容器中运行还是在服务器中运行,都没有任何区别 若您使用IIS作为Web服务器,那个么可以创建一个虚拟目录,并将其映射到文件系统上的图片目录。如果您使用Kestrel作为应用程序服务器,则需要实现一个处理程序,将传入的请求转换为图片文件
您需要更具体地说明所使用的技术,否则无法进一步提供帮助。客户端浏览器将永远无法访问您的本地文件系统。URL唯一有效的方法是,如果您的Web服务器上有一个将传入请求映射到本地文件系统的处理程序。无论您的应用程序是在docker容器中运行还是在服务器中运行,都没有任何区别 若您使用IIS作为Web服务器,那个么可以创建一个虚拟目录,并将其映射到文件系统上的图片目录。如果您使用Kestrel作为应用程序服务器,则需要实现一个处理程序,将传入的请求转换为图片文件
你需要更具体地说明你使用了哪些技术,否则就无法进一步提供帮助。事实上,你给了我正确的方向:我使用的是Kestrel,确实是
app.UseStaticFiles()
但我似乎必须使用重载方法UseStaticFiles
(将StaticFileOption
作为参数的方法)手动指定文件夹。现在它开始工作了!实际上,你给了我一个正确的方向:我在使用Kestrel,并且做了app.UseStaticFiles()
但我似乎必须使用重载方法UseStaticFiles
(将StaticFileOption
作为参数的方法)手动指定文件夹。现在它开始工作了!