Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过url访问docker卷_C#_Docker_Asp.net Web Api_Docker Volume - Fatal编程技术网

C# 通过url访问docker卷

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编码的。我在这里做的基

我用c#创建了一个小型webapi,让我的用户可以上传图像。方法如下所示:

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
作为参数的方法)手动指定文件夹。现在它开始工作了!