From fe2921d9bbee00db56369aa47a1f78d293c8a466 Mon Sep 17 00:00:00 2001 From: zhaojun <873019219@qq.com> Date: Sat, 26 Jul 2025 21:22:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20ftp=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=8D=95=E4=B8=AA=E6=96=87=E4=BB=B6=E4=BF=A1=E6=81=AF=E6=97=B6?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E7=9A=84=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storage/service/impl/FtpServiceImpl.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/im/zhaojun/zfile/module/storage/service/impl/FtpServiceImpl.java b/src/main/java/im/zhaojun/zfile/module/storage/service/impl/FtpServiceImpl.java index aaf3c9e..0cb2825 100644 --- a/src/main/java/im/zhaojun/zfile/module/storage/service/impl/FtpServiceImpl.java +++ b/src/main/java/im/zhaojun/zfile/module/storage/service/impl/FtpServiceImpl.java @@ -9,15 +9,14 @@ import im.zhaojun.zfile.core.util.ArrayUtils; import im.zhaojun.zfile.core.util.FileUtils; import im.zhaojun.zfile.core.util.RequestHolder; import im.zhaojun.zfile.core.util.StringUtils; -import im.zhaojun.zfile.module.storage.support.ftp.FtpClientFactory; -import im.zhaojun.zfile.module.storage.support.ftp.FtpClientPool; import im.zhaojun.zfile.module.storage.model.bo.StorageSourceMetadata; import im.zhaojun.zfile.module.storage.model.enums.FileTypeEnum; import im.zhaojun.zfile.module.storage.model.enums.StorageTypeEnum; import im.zhaojun.zfile.module.storage.model.param.FtpParam; import im.zhaojun.zfile.module.storage.model.result.FileItemResult; import im.zhaojun.zfile.module.storage.service.base.AbstractProxyTransferService; -import jakarta.annotation.PreDestroy; +import im.zhaojun.zfile.module.storage.support.ftp.FtpClientFactory; +import im.zhaojun.zfile.module.storage.support.ftp.FtpClientPool; import lombok.extern.slf4j.Slf4j; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; @@ -31,10 +30,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import java.time.Duration; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.NoSuchElementException; +import java.util.*; /** * @author zhaojun @@ -101,17 +97,22 @@ public class FtpServiceImpl extends AbstractProxyTransferService { Ftp ftp = null; try { ftp = getClientFromPool(); - String fullPath = StringUtils.concat(param.getBasePath(), getCurrentUserBasePath(), pathAndName); + String folderPath = FileUtils.getParentPath(pathAndName); + String fullPath = StringUtils.concat(param.getBasePath(), getCurrentUserBasePath(), folderPath); FTPFile[] ftpFiles = ftp.lsFiles(fullPath); if (ArrayUtils.isEmpty(ftpFiles)) { return null; } - FTPFile ftpFile = ftpFiles[0]; + String fileName = FileUtils.getName(pathAndName); - String folderPath = FileUtils.getParentPath(pathAndName); - return ftpFileToFileItem(ftpFile, folderPath); + for (FTPFile ftpFile : ftpFiles) { + if (Objects.equals(ftpFile.getName(), fileName)) { + return ftpFileToFileItem(ftpFile, folderPath); + } + } + return null; } finally { if (ftp != null) { ftpClientPool.returnObject(ftp);