feat: 优化腾讯存储桶逻辑,不再每次都开关客户端

This commit is contained in:
yys 2026-04-07 13:56:03 +08:00
parent b567ba14b7
commit ae3be9b48d
1 changed files with 16 additions and 4 deletions

View File

@ -13,6 +13,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@ -38,6 +41,19 @@ public class TencentCosUtil {
@Value("${tencentCos.domain}")
private String domain;
private COSClient cosClient;
@PostConstruct
public void initCosClient() {
cosClient = createCosClient();
}
@PreDestroy
public void destroyCosClient() {
if (cosClient != null) {
cosClient.shutdown();
}
}
/**
* 上传MultipartFile到腾讯云COS返回文件访问地址
@ -59,8 +75,6 @@ public class TencentCosUtil {
throw new IllegalArgumentException("上传文件不能为空");
}
COSClient cosClient = createCosClient();
// 生成唯一文件键格式与AWS一致yyyy/MM/dd/uuid_filename
String key = generateCosKey(file.getOriginalFilename());
@ -89,8 +103,6 @@ public class TencentCosUtil {
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("上传文件到COS失败: " + e.getMessage(), e);
} finally {
cosClient.shutdown();
}
}