diff --git a/backend/src/main/java/ervu/client/fileupload/WebDavClient.java b/backend/src/main/java/ervu/client/fileupload/WebDavClient.java index 3a265ef3..12721d12 100644 --- a/backend/src/main/java/ervu/client/fileupload/WebDavClient.java +++ b/backend/src/main/java/ervu/client/fileupload/WebDavClient.java @@ -35,7 +35,6 @@ import ervu.model.webdav.Server; import org.apache.http.client.ClientProtocolException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.InputStreamResource; import org.springframework.core.io.Resource; @@ -46,7 +45,6 @@ import org.springframework.retry.annotation.Backoff; import org.springframework.retry.annotation.Retryable; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; -import ru.micord.ervu.security.esia.config.EsiaConfig; import ru.micord.ervu.util.UrlUtils; /** @@ -215,8 +213,10 @@ public class WebDavClient { @Retryable(value = {IOException.class}, backoff = @Backoff(delayExpression = "${webdav.retry.delay:500}")) public void deleteFilesOlderThan(long seconds, String url, String... extensions) throws IOException { Sardine sardine = initClient(username, password); + AtomicInteger deletedCount = new AtomicInteger(); try { + LOGGER.info("Connecting to WebDAV at URL: {}", url); List resources = sardine.list(url); resources.stream().filter(getPredicate(extensions)) .forEach(davResource -> { @@ -225,12 +225,16 @@ public class WebDavClient { if (age > seconds * 1000) { try { sardine.delete(url + davResource.getPath()); + LOGGER.debug("Deleted file: {}", davResource.getName()); + deletedCount.getAndIncrement(); } catch (IOException e) { LOGGER.error("Failed to delete file {}", davResource.getName(), e); } } }); + + LOGGER.info("Deleted {} old file(s) from WebDAV at URL: {}", deletedCount.get(), url); } finally { try { diff --git a/backend/src/main/java/ervu/service/scheduler/WebDavSchedulerService.java b/backend/src/main/java/ervu/service/scheduler/WebDavSchedulerService.java index 6e5726f4..d1392589 100644 --- a/backend/src/main/java/ervu/service/scheduler/WebDavSchedulerService.java +++ b/backend/src/main/java/ervu/service/scheduler/WebDavSchedulerService.java @@ -33,13 +33,16 @@ public class WebDavSchedulerService { @Scheduled(cron = "${webdav.cleanup.cron:0 0 0 * * *}") @SchedulerLock(name = "webDavOldFilesCleaning") public void deleteOldFiles() { + LOGGER.info("Starting scheduled WebDAV cleanup job"); Arrays.stream(urls).forEach(url -> { try { + LOGGER.info("Cleaning up WebDAV at URL: {}", url); webDavClient.deleteFilesOlderThan(fileLifetime, url, fileExtensions); } catch (IOException e) { LOGGER.error("Failed to clean up WebDAV on {}", url, e); } }); + LOGGER.info("Finished scheduled WebDAV cleanup job"); } }