Maison > Java > javaDidacticiel > Comment configurer le répertoire de stockage de fichiers temporaires dans Springboot

Comment configurer le répertoire de stockage de fichiers temporaires dans Springboot

WBOY
Libérer: 2023-05-12 23:01:04
avant
4091 Les gens l'ont consulté

Configuration du répertoire de stockage de fichiers temporaires Springboot

Scénario :

La fonction de téléchargement de fichier signale une erreur, puis vérifie le journal.

Journal des erreurs :

L'emplacement de téléchargement temporaire [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT] n'est pas valide

Raison :

Dans le système Linux, le service d'application Springboot redémarre (La commande java -jar démarre le service), un répertoire de fichiers tomcat* sera généré dans le répertoire /tmp du système d'exploitation. Les fichiers téléchargés doivent d'abord être convertis en fichiers temporaires et enregistrés dans ce dossier.

Les fichiers du répertoire temporaire /tmp n'étant pas utilisés pendant une longue période (10 jours), ils seront automatiquement supprimés par le mécanisme du système. Par conséquent, si le système n’a pas utilisé le dossier temporaire depuis longtemps, le problème ci-dessus peut survenir.

Solution :

1. Créez un dossier temporaire :

mkdir -p /tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT
Copier après la connexion

Cela peut se reproduire plus tard

2.application.properties reconfigure un répertoire de fichiers, puis redémarrez le projet

# 存放Tomcat的日志、Dump等文件的临时文件夹,默认为系统的tmp文件夹
server.tomcat.basedir=/data/apps/temp
Copier après la connexion

3.

@Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setLocation(tmepPath);
        return factory.createMultipartConfig();
    }
Copier après la connexion

Springboot modifie l'emplacement de stockage des fichiers temporaires

Rapport d'erreurs

Une fois le projet exécuté en ligne pendant un certain temps, l'exception suivante est levée lors du téléchargement de fichiers :

L'emplacement de téléchargement temporaire [/tmp/ tomcat.*.80 /work/Tomcat/localhost/ROOT] n'est pas valide

Après la recherche, la solution suivante a été adoptée [Modifier l'emplacement du fichier temporaire]

Ajouter dans le fichier application.yml

location:
  tempDir: /opt/location/tempDir #此处为*unix的系统相关位置
Copier après la connexion

Ajouter la classe de configuration dans le projet

@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();
   }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal