惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
M
MIT News - Artificial intelligence
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Azure Blog
Microsoft Azure Blog
J
Java Code Geeks
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
IT之家
IT之家
F
Fortinet All Blogs
博客园 - 聂微东
U
Unit 42
Martin Fowler
Martin Fowler
腾讯CDC
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
量子位
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky

博客园 - IT之家

关于antd前端组件a-select组件选择无效的问题处理记录 antd前端页面实现浏览器中PDF文件预览(不使用第三方插件 ) swagger文档生成html静态文档 根据Word模板导出word文档,包含文本标签替换为图片,生成列表数据,以及标签替换等功能 asp.net core中webapi接口的动作与参数 liunx服务器通过ssh实现异地备份 mysql常见错误 liunx下自动备份文件夹 mysql在liunx下面的自动备份 关于.net6.0中swagger偶尔无法加载接口的问题笔记 VUE对象数组,和普通数组的常用方法 关于VUE项目请示接口报错:Error: Network Error at createError (createError.js:17) at XMLHttpRequest.handleError的问题处理 解决.net6 Docker容器 DateTime.Now 获取时间相差8小时问题(转载) CronExpression使用笔记 vue项目发布到docker nginx的方法总结 VUE项目开发报错:Error in render: "TypeError: Cannot read property 'country' of undefined" vs2022升级后打开项目报错预定义类型system.void未定义或导入” 关于.net6项目发布到docker(nginx)踩到的一些坑 关于.netcore6图片处理(生成缩略图、验证码、加水印)发布到docker(liunx)踩到的坑
.NETCore文件上传将文件保存到docker容器以外的文件夹
IT之家 · 2024-03-06 · via 博客园 - IT之家

最近在开发一个文件服务,用于公司内容各应用的文件保存和查询获取。

开发环境:windows10+.NET Core7.0+Mysql   发布环境 :Liunx+Docker

实现功能:文件服务提供接口上传文件和下载文件,服务用于内网访问。
实现中遇到的问题:由于文件保存是用的系统自带文件服务。而部署环境是Liunx+Docker,Docker是文件是隔离的,所以在使用docker部署的应用中,正常情况下只能访问docker内的文件,所以保存的文件夹也是在docker应用内,但是由于文件比较多,而docker部署的文件夹空间有限,所以需要将文件保存到docker外的文件夹内。

于是将保存路径改为绝对路径,但是发布运行发现找不到文件夹,但是文件是成功保存到服务器上了,通过find命令查找文件夹,命令如下:

find / -name "FileBucket" 

-name是指定按文件名查找,”FileBucket"是文件夹名称

找到如下内容:

find: ‘/proc/22841’: 没有那个文件或目录
find: ‘/proc/22849’: 没有那个文件或目录
find: ‘/proc/22856’: 没有那个文件或目录
find: ‘/proc/22858’: 没有那个文件或目录
/var/lib/docker/overlay2/8ee6db6db05756d9884c8fd80574cc48400243c64a5fa57dbdcd896251edcbc1/diff/FileBucket
/var/lib/docker/overlay2/8ee6db6db05756d9884c8fd80574cc48400243c64a5fa57dbdcd896251edcbc1/merged/FileBucket
/FileBucket

在/var/lib/docker/overlay2/8ee6db6db05756d9884c8fd80574cc48400243c64a5fa57dbdcd896251edcbc1/diff/FileBucket文件夹中找到了上传的文件,文件还在保存在docker环境下面了,没有达到我要保存到docker环境外的目的。

于是百度了一下,找到了一个方式,就是在发布docker的时候将要保存的文件夹外挂到docker上面,命令如下:     

docker run -d -p 8030:80 --name aveplugins_1 --restart=always -e TZ=Asia/Shanghai -d -v /home/AvePlugins1/back:/app -v /FileStorage:/app/FileStorage aveplugins:1.0  

其中-v 是指定外挂的文件夹,-v 后面是要外挂的文件夹  :后面的docker内使用的文件夹 -name 是指定docker容器名称

发布后,将文件保存的位置配置为/FileStorage/即可。