Heim > Java > javaLernprogramm > Hauptteil

So konfigurieren Sie das temporäre Dateispeicherverzeichnis in Springboot

WBOY
Freigeben: 2023-05-12 23:01:04
nach vorne
4050 Leute haben es durchsucht

Konfiguration des temporären Dateispeicherverzeichnisses von Springboot

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

Grund:

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.

Lösung:

1. Erstellen Sie einen temporären Ordner:

mkdir -p /tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT
Nach dem Login kopieren

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
Nach dem Login kopieren

3

@Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setLocation(tmepPath);
        return factory.createMultipartConfig();
    }
Nach dem Login kopieren

Springboot ändert den Speicherort temporärer Dateien

Fehlerberichterstattung

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的系统相关位置
Nach dem Login kopieren

Hinzufügen die Konfigurationsklasse zum Projekt

@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();
   }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage