文件上传、解析及存储(前端+后端) | 您所在的位置:网站首页 › 上传文件的端口叫什么名称 › 文件上传、解析及存储(前端+后端) |
文件在服务器的存储目录找不到了,500报错??? 一看,傻眼了,事情不太妙,这是神马情况?怎么就找不到这个/tmp目录了呢?便请教了百度大哥,他告诉我原因:Spring Boot在启动时,会在操作系统生成一个名为/tmp的临时目录,如果超过10天未使用该临时目录,则系统会自动执行systemd-tmpfiles-clean.service服务来清除该临时目录。当上传文件的请求到来时,Spring Boot会痴痴的去寻觅/tmp,找不到了也不会再去新建一个目录,这就是爱吧!我被感动了,我决心成人之美。给他想了以下解决方案: a. 在服务器新建一个名为/tmp的临时目录(不可取:强“建”的目录不久,Spring Boot 超过10天不搭理/tmp,爱依旧会消失的) b. 重启服务,会再此自动生产临时目录(不可取:今生不能再做情人,来世再做夫妻,奈何命运弄Spring Boot,依旧会重蹈覆辙) c. Spring Boot官方回应,Spring Boot 2.1.4修复了该问题,我没有亲自尝试过(我信你个鬼,你个糟老头子坏得狠),但Spring Boot 2.2.6没有修复,可能只是2.1.4版本修复了。 e. 优化方案d,写一个配置类,即使yml文件中配置的目录不存在,也可以自动创建目录。 @Slf4j @Configuration public class UndertowConfig { @Value("${spring.servlet.multipart.location}") private String filePath; @Bean public MultipartConfigElement multipartConfigElement(){ MultipartConfigFactory factory = new MultipartConfigFactory(); if (!StringUtil.isNullOrEmpty(filePath)) { File file = new File(filePath); log.info("文件存储路径:{}", file); if (!file.exists()) { boolean dirCreated = file.mkdir(); if(! dirCreated){ throw new RuntimeException("create file " + file.getAbsolutePath() + " failed!"); } } // 需要写和执行的权限 if(! (file.canWrite() && file.canExecute())){ throw new RuntimeException(file.getAbsolutePath() + " Permission denied!"); } } factory.setLocation(filePath); return factory.createMultipartConfig(); } }文件模版的下载链接失效了??? 曾在OSS界面将文件模版进行上传,但一段时间后发现链接URL失效了,导致无法下载模版。打开OSS发现,每个URL的有效时间最长是32400秒,每间隔32400秒就会生成一个新的URL,旧的URL就会失效。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |