SUPPORT-9339: Fix

This commit is contained in:
Eduard Tihomirov 2025-09-09 13:13:04 +03:00
parent 0bd01d3f30
commit 5fed7056d6
2 changed files with 10 additions and 8 deletions

View file

@ -100,10 +100,8 @@ public class WebDavClient {
for (Map.Entry<String, MultipartFile> entry : files.entrySet()) {
String key = entry.getKey();
MultipartFile file = entry.getValue();
if (file != null) {
String fileName = fileCatalog + file.getOriginalFilename();
result.put(key, putAndGetUrl(file.getBytes(), fileName, sardine));
result.put(key, putAndGetUrl(file.getBytes(), file.getOriginalFilename(), sardine, fileCatalog));
}
}
return result;
@ -121,7 +119,7 @@ public class WebDavClient {
}
}
public String putAndGetUrl(byte[] fileBytes, String fileName, Sardine client) throws IOException {
public String putAndGetUrl(byte[] fileBytes, String fileName, Sardine client, String fileCatalog) throws IOException {
if (badServersCache.size() == urls.length) {
return null;
}
@ -146,19 +144,23 @@ public class WebDavClient {
}
boolean isBad = false;
String serverUrl = server.getUrl();
String fileUploadUrl = serverUrl + "/" + fileName;
String directory = serverUrl + "/" + fileCatalog + "/";
if (!client.exists(directory)) {
client.createDirectory(directory);
}
String fileUploadUrl = directory + fileName;
try {
client.put(fileUploadUrl, fileBytes);
server.setLastCallTime(System.currentTimeMillis());
}
catch (ConnectException | ClientProtocolException ignore) {
isBad = true;
LOGGER.error("WebDAV error. Url: {}, Message: {}", fileUploadUrl, ignore.getMessage());;
}
if (isBad) {
badServersCache.getUnchecked(serverUrl);
return putAndGetUrl(fileBytes, fileName, client);
return putAndGetUrl(fileBytes, fileName, client, fileCatalog);
}
return fileUploadUrl;

View file

@ -425,7 +425,7 @@ public class EmployeeInfoFileUploadService {
}
}
@KafkaListener(id = "${file.kafka.group.id}", topics = "${ervu.kafka.download.response}",
@KafkaListener(id = "${av.kafka.group.id}", topics = "${ervu.kafka.download.response}",
containerFactory = "fileContainerFactory")
public void listenKafka(String kafkaMessage) {
ObjectMapper mapper = new ObjectMapper();