問題:
SpringBoot運行一段時間之后,上傳文件報錯:
The temporary upload location [/tmp/tomcat.****/work/Tomcat/localhost/ROOT] is not valid.
分析:
- SpringBoot默認以內置的tomcat啟動,默認會在linux系統/tmp目錄下創建工作目錄(臨時文件目錄)。
- SpringBoot使用內置tomcat上傳文件時,會在tomcat臨時文件目錄下創建臨時文件。
- Linux系統默認會在一定時間時定時清理刪除/tmp目錄下的文件目錄。
因此,不重新配置tomcat臨時文件目錄或者不修改Linux定時清理/tmp目錄的策略,會導致SpringBoot項目運行一段時間后,上傳文件失敗。
解決方案:
- 方案一:修改Linux系統定時清理/tmp目錄策略。
- 方案二:重新設置tomcat臨時文件目錄。(推薦)
server:
tomcat:
basedir: ${tempDirPath}