update 优化 oss 下载使用临时文件避免线程冲突
This commit is contained in:
parent
e115f5f2f4
commit
13e60a6048
@ -34,7 +34,6 @@ import java.net.URI;
|
||||
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 @@ public class OssClient {
|
||||
* @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)
|
||||
@ -451,16 +447,6 @@ public class OssClient {
|
||||
return path.replace(getUrl() + StringUtils.SLASH, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* 从文件路径中提取文件名
|
||||
*
|
||||
* @param path 文件路径
|
||||
* @return 提取的文件名或默认文件名
|
||||
*/
|
||||
public String extractFileName(String path) {
|
||||
return FileUtils.getTmpDir() + StringUtils.SLASH + Paths.get(path).getFileName().toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务商
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user