Skip to content

商务合作:vTikTok


公众号:



FastAPI和Nginx需要共享上传或者下载的目录

如果FastAPI和Nginx不在同一个容器中,那么你需要使用Docker的卷(Volume)或者绑定挂载(Bind Mount)来共享文件。

以下是一个基本的步骤:

  1. 创建一个Docker卷或者在宿主机上选择一个目录作为绑定挂载。例如,你可以创建一个名为fileshare的卷:
bash
docker volume create fileshare
docker volume create fileshare

或者选择一个目录,例如/home/user/fileshare

  1. 在启动FastAPI和Nginx容器时,将这个卷或者目录挂载到容器中的某个路径。例如:
bash
docker run -d -v fileshare:/app/files your-fastapi-image
docker run -d -v fileshare:/usr/share/nginx/html your-nginx-image
docker run -d -v fileshare:/app/files your-fastapi-image
docker run -d -v fileshare:/usr/share/nginx/html your-nginx-image

或者

bash
docker run -d -v /home/user/fileshare:/app/files your-fastapi-image
docker run -d -v /home/user/fileshare:/usr/share/nginx/html your-nginx-image
docker run -d -v /home/user/fileshare:/app/files your-fastapi-image
docker run -d -v /home/user/fileshare:/usr/share/nginx/html your-nginx-image

在这里,/app/files/usr/share/nginx/html是你在FastAPI和Nginx容器中用来存储文件的路径。

  1. 当用户上传一个文件时,你可以在FastAPI应用中处理文件上传的请求,然后将文件保存到/app/files

  2. 当用户请求一个文件时,Nginx会从/usr/share/nginx/html提供文件。

这样,FastAPI和Nginx就可以共享同一组文件了。