Проблема заключается в этом методе:
Нет проблем с S3, вы получаете эту проблему, потому что используете fileOutputstream , вы не указали ни одной папки для записи файла. по умолчанию он записывает файл в папку target в вашем проекте.
private File convertMultiPartToFile(MultipartFile file) throws IOException {
File convFile = new File(file.getOriginalFilename());
FileOutputStream fos = new FileOutputStream(convFile);
fos.write(file.getBytes());
fos.close();
return convFile;
}
Поэтому я решил код, создав папку to tomcat сервер , при загрузке. Когда запрос приходит в следующий раз. Я удаляю существующий каталог и создаю его снова только для записи файлов.
Используйте следующий код:
private File convertMultiPartToFile(MultipartFile file) throws IOException {
deleteDir(new File(NsdlUrlListService.einvoicePath)); //delete a dir
File files = new File("home/ubuntu/txtgenie/einvoice/"); //create a dir
if (!files.exists()) {
if (files.mkdirs()) {
logger.debug("Multiple directories are created!");
} else {
logger.debug("Failed to create multiple directories!");
}
}
File convFile = new File(file.getOriginalFilename());
FileOutputStream fos = new
FileOutputStream("/home/ubuntu/txtgenie/einvoice/"+convFile);
logger.info(" File Name:: {} ", file);
String fileName = null;
byte[] bytes = file.getBytes();
fileName = file.getOriginalFilename();
if (!fileName.equals("No file")) {
try {
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(new File("home/ubuntu/txtgenie/einvoice/"
+ fileName)));
bos.write(bytes);
bos.close();
}
catch (FileNotFoundException fnfe) {
logger.debug("File not found" + fnfe);
}
catch (IOException ioe) {
logger.debug("Error while writing to file" + ioe);
}
}
fos.write(file.getBytes());
fos.close();
return convFile;
}
ДЛЯ удаления dir
private boolean deleteDir(File file) {
logger.debug("DIR to delete :: " +file);
if (file.isDirectory()) {
String[] children = file.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir (new File(file, children[i]));
if (!success) {
return false;
}
}
}
logger.debug("The directory : "+file+" : is deleted.");
return file.delete();
}