From 938fc7d08813b440199fc10a704adb0151a7fb3e Mon Sep 17 00:00:00 2001 From: duandazhi Date: Thu, 22 Jul 2021 16:58:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=9C=E7=A8=8B=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E8=B0=83=E7=94=A8=EF=BC=9ARemoteFileService=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=EF=BC=9A=E5=88=A0=E9=99=A4=E3=80=81=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=AE=B9=E9=87=8F=E3=80=81?= =?UTF-8?q?=E5=8A=A0=E7=AD=BE=E4=B8=89=E4=B8=AA=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/system/api/RemoteFileService.java | 25 ++++++++++++++++++- .../factory/RemoteFileFallbackFactory.java | 15 +++++++++++ .../java/com/ruoyi/file/config/FtpConfig.java | 10 ++++---- .../file/service/FtpFileServiceImpl.java | 5 ++-- 4 files changed, 46 insertions(+), 9 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java index ae56a54a..5683e329 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java @@ -2,7 +2,9 @@ package com.ruoyi.system.api; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.core.constant.ServiceNameConstants; @@ -25,5 +27,26 @@ public interface RemoteFileService * @return 结果 */ @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public R upload(@RequestPart(value = "file") MultipartFile file); + R upload(@RequestPart(value = "file") MultipartFile file); + + /** + * 删除文件 + * 根据文件的完整url进行删除资源 + */ + @PostMapping("delete") + R delete(@RequestParam("fileUrl") String fileUrl); + + /** + * 获取文件服务器的容量 + * 获取文件服务器占用资源的容量 + */ + @GetMapping("objectsCapacityStr") + R capacityStr(); + + /** + * 临时安全凭证、获取加签的url; 根据输入的url,获取带有临时安全凭证的url + * @param fileUrl 待加签的url + */ + @GetMapping("getPresignedUrl") + R getPresignedUrl(@RequestParam(value = "fileUrl") String fileUrl); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java index bc3b6fff..2ae18f36 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java @@ -30,6 +30,21 @@ public class RemoteFileFallbackFactory implements FallbackFactory delete(String fileUrl) { + return R.fail("删除文件失败:" + throwable.getMessage()); + } + + @Override + public R capacityStr() { + return R.fail("文件容量获取失败:" + throwable.getMessage()); + } + + @Override + public R getPresignedUrl(String fileUrl) { + return R.fail("文件加签失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FtpConfig.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FtpConfig.java index a28f0924..41600b9e 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FtpConfig.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/FtpConfig.java @@ -24,7 +24,7 @@ public class FtpConfig { * eg1: www.ourslook.com * eg2: 192.168.0.1 */ - private String hostName; + private String endpoint; /** * ftp端口,默认21 */ @@ -52,12 +52,12 @@ public class FtpConfig { */ private String domain; - public String getHostName() { - return hostName; + public String getEndpoint() { + return endpoint; } - public void setHostName(String hostName) { - this.hostName = hostName; + public void setEndpoint(String endpoint) { + this.endpoint = endpoint; } public Integer getPort() { diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FtpFileServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FtpFileServiceImpl.java index 1d5e0fc2..0b6cda91 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FtpFileServiceImpl.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FtpFileServiceImpl.java @@ -6,7 +6,6 @@ import com.ruoyi.common.core.exception.CustomException; import com.ruoyi.file.config.FtpConfig; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -37,7 +36,7 @@ public class FtpFileServiceImpl implements IDfsService { Ftp ftp = null; try { - ftp = new Ftp(ftpConfig.getHostName(), ftpConfig.getPort(), ftpConfig.getUserName(), ftpConfig.getPassword()); + ftp = new Ftp(ftpConfig.getEndpoint(), ftpConfig.getPort(), ftpConfig.getUserName(), ftpConfig.getPassword()); ftp.setBackToPwd(true); ftp.cd("/"); // 主要是主动模式还是被动 @@ -56,7 +55,7 @@ public class FtpFileServiceImpl implements IDfsService { public boolean deleteFile(String fileUrl) { Ftp ftp = null; try { - ftp = new Ftp(ftpConfig.getHostName(), ftpConfig.getPort(), ftpConfig.getUserName(), ftpConfig.getPassword()); + ftp = new Ftp(ftpConfig.getEndpoint(), ftpConfig.getPort(), ftpConfig.getUserName(), ftpConfig.getPassword()); // 主要是主动模式还是被动 ftp.setMode(FtpMode.Active); String storePath = getStorePath(fileUrl);