From 13e60a60488e71b28bb947bd15acb6de01366a7e Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 15 一月 2024 09:36:55 +0800
Subject: [PATCH] update 优化 oss 下载使用临时文件避免线程冲突
---
ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java | 20 +++-----------------
1 files changed, 3 insertions(+), 17 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java
index 6c402dc..eb1656c 100644
--- a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java
+++ b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java
@@ -34,7 +34,6 @@
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
-import java.nio.file.Paths;
import java.time.Duration;
/**
@@ -242,16 +241,13 @@
* @throws OssException 濡傛灉涓嬭浇澶辫触锛屾姏鍑鸿嚜瀹氫箟寮傚父
*/
public Path fileDownload(String path) {
- // 浠庤矾寰勪腑绉婚櫎 URL 鍓嶇紑
- String url = removeBaseUrl(path);
-
- // 鏋勫缓涓存椂鏂囦欢璺緞 鏂囦欢鍚嶅繀椤绘槸鍞竴涓嶅瓨鍦ㄧ殑锛岃矾寰勫繀椤绘槸瀛樺湪鐨�
- Path tempFilePath = Paths.get(extractFileName(url));
+ // 鏋勫缓涓存椂鏂囦欢
+ Path tempFilePath = FileUtils.createTempFile().toPath();
// 浣跨敤 S3TransferManager 涓嬭浇鏂囦欢
FileDownload downloadFile = transferManager.downloadFile(
x -> x.getObjectRequest(
y -> y.bucket(properties.getBucketName())
- .key(url)
+ .key(removeBaseUrl(path))
.build())
.addTransferListener(LoggingTransferListener.create())
.destination(tempFilePath)
@@ -449,16 +445,6 @@
*/
public String removeBaseUrl(String path) {
return path.replace(getUrl() + StringUtils.SLASH, "");
- }
-
- /**
- * 浠庢枃浠惰矾寰勪腑鎻愬彇鏂囦欢鍚�
- *
- * @param path 鏂囦欢璺緞
- * @return 鎻愬彇鐨勬枃浠跺悕鎴栭粯璁ゆ枃浠跺悕
- */
- public String extractFileName(String path) {
- return FileUtils.getTmpDir() + StringUtils.SLASH + Paths.get(path).getFileName().toString();
}
/**
--
Gitblit v1.9.3