Szenario:
Die Funktion zum Hochladen von Dateien meldet einen Fehler und überprüft dann das Protokoll.
Fehlerprotokoll:
Der temporäre Upload-Speicherort [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT] ist ungültig
Im Linux-System die Springboot Der Dienst wird neu gestartet (Der Befehl java -jar startet den Dienst), ein Tomcat*-Dateiverzeichnis wird im Verzeichnis /tmp des Betriebssystems generiert. Die hochgeladenen Dateien müssen zunächst in temporäre Dateien konvertiert und in diesem Ordner gespeichert werden.
Da die Dateien im temporären /tmp-Verzeichnis längere Zeit (10 Tage) nicht verwendet werden, werden sie durch den Systemmechanismus automatisch gelöscht. Wenn das System den temporären Ordner längere Zeit nicht verwendet hat, kann es daher zu dem oben genannten Problem kommen.
1. Erstellen Sie einen temporären Ordner:
mkdir -p /tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT
Dies kann später noch einmal passieren
2.application.properties konfiguriert ein Dateiverzeichnis neu und startet dann das Projekt neu
# 存放Tomcat的日志、Dump等文件的临时文件夹,默认为系统的tmp文件夹 server.tomcat.basedir=/data/apps/temp
3
@Bean MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); factory.setLocation(tmepPath); return factory.createMultipartConfig(); }
Nachdem das Projekt eine Zeit lang online ausgeführt wurde, wird beim Hochladen von Dateien die folgende Ausnahme ausgelöst:
Der temporäre Upload-Speicherort [/tmp/ tomcat.*.80 /work/Tomcat/localhost/ROOT] ist nicht gültig
Nach der Suche wurde die folgende Lösung übernommen [Ändern Sie den Speicherort der temporären Datei]
In der application.yml-Datei hinzufügen
location: tempDir: /opt/location/tempDir #此处为*unix的系统相关位置
@Configuration public class MultipartConfig { @Value("${location.tempDir:/opt/tempDir}") private String tempDir; @Bean MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); File tmpDirFile = new File(tempDir); // 判断文件夹是否存在 if (!tmpDirFile.exists()) { tmpDirFile.mkdirs(); } factory.setLocation(tempDir); return factory.createMultipartConfig(); } }
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie das temporäre Dateispeicherverzeichnis in Springboot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!