diff --git a/src/main/java/org/codelibs/fess/app/web/admin/storage/AdminStorageAction.java b/src/main/java/org/codelibs/fess/app/web/admin/storage/AdminStorageAction.java index 9846c40c3..552f7f29f 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/storage/AdminStorageAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/storage/AdminStorageAction.java @@ -112,6 +112,22 @@ public class AdminStorageAction extends FessAdminAction { }); } + @Execute + public HtmlResponse delete(final String id) { + final String[] values = decodeId(id); + if (StringUtil.isEmpty(values[1])) { + throwValidationError(messages -> messages.addErrorsStorageFileNotFound(GLOBAL), () -> asListHtml(values[0])); + } + try { + final MinioClient minioClient = createClient(fessConfig); + minioClient.removeObject(fessConfig.getStorageBucket(), values[0] + values[1]); + } catch (final Exception e) { + logger.debug("Failed to delete {}", values[0] + values[1], e); +// TODO throwValidationError(messages -> messages.addErrorsStorageAccessError(GLOBAL, e.getLocalizedMessage()), () -> asListHtml(values[0])); + } + return redirect(getClass()); // no-op + } + public static List> getFileItems(final String prefix) { final FessConfig fessConfig = ComponentUtil.getFessConfig(); final ArrayList> list = new ArrayList<>(); diff --git a/src/main/webapp/WEB-INF/view/admin/storage/admin_storage.jsp b/src/main/webapp/WEB-INF/view/admin/storage/admin_storage.jsp index 6666a6273..f648414c5 100644 --- a/src/main/webapp/WEB-INF/view/admin/storage/admin_storage.jsp +++ b/src/main/webapp/WEB-INF/view/admin/storage/admin_storage.jsp @@ -77,6 +77,7 @@ .. + @@ -85,15 +86,60 @@ ${f:h(data.name)} ${f:h(data.size)} ${f:h(data.lastModifed)} - ${f:h(data.name)} - + + + + +