Rumah > Java > javaTutorial > Bagaimana untuk mengkonfigurasi direktori storan fail sementara dalam springboot

Bagaimana untuk mengkonfigurasi direktori storan fail sementara dalam springboot

WBOY
Lepaskan: 2023-05-12 23:01:04
ke hadapan
4082 orang telah melayarinya

Konfigurasi direktori storan fail sementara Springboot

Senario:

Fungsi fail muat naik melaporkan ralat, dan kemudian semak log.

Log ralat:

Lokasi muat naik sementara [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT] tidak sah

Punca:

Dalam sistem Linux, apabila perkhidmatan aplikasi springboot dimulakan semula (arahan java -jar memulakan perkhidmatan), fail tomcat* akan dijana dalam direktori /tmp bagi sistem pengendalian, fail yang dimuat naik mesti terlebih dahulu ditukar kepada fail sementara dan disimpan di bawah folder ini.

Oleh kerana fail dalam direktori /tmp sementara tidak digunakan untuk masa yang lama (10 hari), ia akan dipadamkan secara automatik oleh mekanisme sistem. Oleh itu, jika sistem tidak menggunakan folder sementara untuk masa yang lama, ia boleh menyebabkan masalah di atas.

Penyelesaian:

1 Cipta folder sementara:

mkdir -p /tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT
Salin selepas log masuk
Ini mungkin berlaku lagi kemudian

2 kemudian mulakan semula projek

# 存放Tomcat的日志、Dump等文件的临时文件夹,默认为系统的tmp文件夹
server.tomcat.basedir=/data/apps/temp
Salin selepas log masuk
3. Konfigurasi kelas konfigurasi direktori storan fail sementara

@Bean
    MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setLocation(tmepPath);
        return factory.createMultipartConfig();
    }
Salin selepas log masuk
Springboot mengubah suai lokasi penyimpanan fail sementara

Pelaporan ralat

Selepas projek telah berjalan dalam talian untuk satu tempoh masa, pengecualian berikut dilemparkan apabila memuat naik fail:

Lokasi muat naik sementara [/tmp/tomcat.*.80/work/Tomcat/localhost/ ROOT] tidak sah

Selepas mencari, penyelesaian berikut telah diterima pakai [Ubah suai lokasi fail sementara]

Tambah

location:
  tempDir: /opt/location/tempDir #此处为*unix的系统相关位置
Salin selepas log masuk
pada application.yml fail dan tambah kelas konfigurasi pada projek

@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();
   }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi direktori storan fail sementara dalam springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan