Переопределение пути к файлу fileStorageUpload

Здравствуйте!

  1. Возможно ли переопределение пути к файлу, который создается при
fileStorageUpload

или это TemporaryStorage и из него надо пересохранять куда угодно?
2. Не увидел в

fileMultiUploadField

свойство fileStorage - как указать ему хранилище?

fileStorageUpload и fileMultiUploadField изначально загружают файл во временное хранилище. А если установлен атрибут fileStoragePutMode="MANUAL" - вы после загрузки вы можете сохранить его в нужное постоянное хранилище.
В документации есть хороший пример.
По умолчанию методы работы с хранилищем типа temporaryStorage.putFileIntoStorage(...) используют основное хранилище.

Если нужно несколько хранилищ и раскладывать файлы в разные - это тоже возможно.
В документации Использование хранилища файлов достаточно подробно расписано то, как это сделать.

Возможно, кому-то поможет - надо разобраться с классами Files, Path, Paths и получилось такое решение задачи:


    @Autowired
    private FileMultiUploadField upload;
//---
upload.addQueueUploadCompleteListener(queueUploadCompleteEvent -> {
            filepath = "некий путь, сформированый на основании данных формы"
                    + File.separator;
					
			//Создаем нужную папку		
            Path pathPrefix = Paths.get(filepath);
            try {
                Files.createDirectories(pathPrefix);
            } catch (IOException e) {
                throw new RuntimeException("Error creating ticket's directory ", e);
            }
			//перебором карты события копируем файлы сначала во временное хранилище
            for (Map.Entry<UUID, String> entry : upload.getUploadsMap().entrySet()) {
                UUID fileId = entry.getKey();
                String fileName = entry.getValue();
						//filestorage определяем fileStorageLocator'ом
                FileRef fileRef = temporaryStorage.putFileIntoStorage(fileId, fileName, fileStorage); 
						//а потом из него в созданную папку
                InputStream inputStream = fileStorage.openStream(fileRef);
                Path path1 = Path.of(filepath, Path.of(fileRef.getFileName()).toString());
                try {
                    Files.copy(inputStream, path1,
                            StandardCopyOption.REPLACE_EXISTING);
                } catch (IOException e) {
                    throw new RuntimeException("Error saving file", e);
                }
            }
			// сообщаем о радостном и успешном событии
            notifications.create()
                    .withCaption("Uploaded files: " + upload.getUploadsMap().values())
                    .show();
			// чистим лишнее
            upload.clearUploads();
        });