From 2c73fc30bc9022424f3fa65b585b051a54084e6b Mon Sep 17 00:00:00 2001 From: Shinsuke Sugaya <shinsuke@apache.org> Date: Thu, 19 Dec 2019 11:45:11 +0900 Subject: [PATCH] fix #2333 add upload api --- .../admin/storage/ApiAdminStorageAction.java | 21 ++++++++++++++----- .../app/web/api/admin/storage/UploadForm.java | 7 ++++--- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/codelibs/fess/app/web/api/admin/storage/ApiAdminStorageAction.java b/src/main/java/org/codelibs/fess/app/web/api/admin/storage/ApiAdminStorageAction.java index ffdff990b..28b084396 100644 --- a/src/main/java/org/codelibs/fess/app/web/api/admin/storage/ApiAdminStorageAction.java +++ b/src/main/java/org/codelibs/fess/app/web/api/admin/storage/ApiAdminStorageAction.java @@ -70,6 +70,9 @@ public class ApiAdminStorageAction extends FessApiAdminAction { try { downloadObject(getObjectName(values[0], values[1]), out); } catch (final StorageException e) { + if (logger.isDebugEnabled()) { + logger.debug("Failed to download " + id, e); + } throwValidationErrorApi(messages -> messages.addErrorsStorageFileDownloadFailure(GLOBAL, values[1])); } }); @@ -88,24 +91,32 @@ public class ApiAdminStorageAction extends FessApiAdminAction { saveInfo(messages -> messages.addSuccessDeleteFile(GLOBAL, values[1])); return asJson(new ApiResult.ApiResponse().status(ApiResult.Status.OK).result()); } catch (final StorageException e) { + if (logger.isDebugEnabled()) { + logger.debug("Failed to delete " + id, e); + } throwValidationErrorApi(messages -> messages.addErrorsFailedToDeleteFile(GLOBAL, values[1])); } return null; } + // curl -XPOST -H "Authorization: CHANGEME" localhost:8080/api/admin/storage/upload/ -F path=/ -F file=@... // POST /api/admin/storage/upload/{pathId}/ @Execute - public JsonResponse<ApiResult> post$upload(final String pathId, final UploadForm form) { + public JsonResponse<ApiResult> post$upload(final UploadForm form) { validateApi(form, messages -> {}); - if (form.uploadFile == null) { + if (form.file == null) { throwValidationErrorApi(messages -> messages.addErrorsStorageNoUploadFile(GLOBAL)); } + final String fileName = form.file.getFileName(); try { - uploadObject(getObjectName(decodeId(pathId)[0], form.uploadFile.getFileName()), form.uploadFile); - saveInfo(messages -> messages.addSuccessUploadFileToStorage(GLOBAL, form.uploadFile.getFileName())); + uploadObject(getObjectName(form.path, fileName), form.file); + saveInfo(messages -> messages.addSuccessUploadFileToStorage(GLOBAL, fileName)); return asJson(new ApiResult.ApiResponse().status(ApiResult.Status.OK).result()); } catch (final StorageException e) { - throwValidationErrorApi(messages -> messages.addErrorsStorageFileUploadFailure(GLOBAL, form.uploadFile.getFileName())); + if (logger.isDebugEnabled()) { + logger.debug("Failed to upload " + fileName, e); + } + throwValidationErrorApi(messages -> messages.addErrorsStorageFileUploadFailure(GLOBAL, fileName)); } return null; } diff --git a/src/main/java/org/codelibs/fess/app/web/api/admin/storage/UploadForm.java b/src/main/java/org/codelibs/fess/app/web/api/admin/storage/UploadForm.java index 3c12ec5bf..00aa6553d 100644 --- a/src/main/java/org/codelibs/fess/app/web/api/admin/storage/UploadForm.java +++ b/src/main/java/org/codelibs/fess/app/web/api/admin/storage/UploadForm.java @@ -15,13 +15,14 @@ */ package org.codelibs.fess.app.web.api.admin.storage; -import org.codelibs.fess.app.web.admin.storage.ItemForm; import org.lastaflute.web.ruts.multipart.MultipartFormFile; import org.lastaflute.web.validation.Required; -public class UploadForm extends ItemForm { +public class UploadForm { + + public String path; @Required - public MultipartFormFile uploadFile; + public MultipartFormFile file; } -- GitLab