完成 FileConfig 的后端模块

This commit is contained in:
YunaiV
2022-03-15 22:30:52 +08:00
parent 05d4aae65d
commit 18a5c46284
33 changed files with 1044 additions and 37 deletions

View File

@ -5,10 +5,10 @@ public interface FileClientFactory {
/**
* 获得文件客户端
*
* @param channelId 渠道编号
* @param configId 配置编号
* @return 文件客户端
*/
FileClient getFileClient(Long channelId);
FileClient getFileClient(Long configId);
/**
* 创建文件客户端

View File

@ -23,10 +23,10 @@ public class FileClientFactoryImpl implements FileClientFactory {
private final ConcurrentMap<Long, AbstractFileClient<?>> clients = new ConcurrentHashMap<>();
@Override
public FileClient getFileClient(Long channelId) {
AbstractFileClient<?> client = clients.get(channelId);
public FileClient getFileClient(Long configId) {
AbstractFileClient<?> client = clients.get(configId);
if (client == null) {
log.error("[getFileClient][配置编号({}) 找不到客户端]", channelId);
log.error("[getFileClient][配置编号({}) 找不到客户端]", configId);
}
return client;
}
@ -50,20 +50,7 @@ public class FileClientFactoryImpl implements FileClientFactory {
FileStorageEnum storageEnum = FileStorageEnum.getByStorage(storage);
Assert.notNull(storageEnum, String.format("文件配置(%s) 为空", storageEnum));
// 创建客户端
// switch (storageEnum) {
// case WX_PUB: return (AbstractFileClient<Config>) new WXPubFileClient(channelId, (WXFileClientConfig) config);
// case WX_LITE: return (AbstractFileClient<Config>) new WXPubFileClient(channelId, (WXFileClientConfig) config);
// case WX_APP: return (AbstractFileClient<Config>) new WXPubFileClient(channelId, (WXFileClientConfig) config);
// case ALIPAY_WAP: return (AbstractFileClient<Config>) new AlipayWapFileClient(channelId, (AlipayFileClientConfig) config);
// case ALIPAY_QR: return (AbstractFileClient<Config>) new AlipayQrFileClient(channelId, (AlipayFileClientConfig) config);
// case ALIPAY_APP: return (AbstractFileClient<Config>) new AlipayQrFileClient(channelId, (AlipayFileClientConfig) config);
// case ALIPAY_PC: return (AbstractFileClient<Config>) new AlipayQrFileClient(channelId, (AlipayFileClientConfig) config);
// }
return (AbstractFileClient<Config>) ReflectUtil.newInstance(storageEnum.getClientClass(), configId, config);
// storageEnum.getClientClass().newInstance()
// // 创建失败,错误日志 + 抛出异常
// log.error("[createSmsClient][配置({}) 找不到合适的客户端实现]", config);
// throw new IllegalArgumentException(String.format("配置(%s) 找不到合适的客户端实现", config));
}
}

View File

@ -2,6 +2,7 @@ package cn.iocoder.yudao.framework.file.core.client.s3;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.file.core.client.FileClientConfig;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.hibernate.validator.constraints.URL;
@ -70,11 +71,12 @@ public class S3FileClientConfig implements FileClientConfig {
@NotNull(message = "accessSecret 不能为空")
private String accessSecret;
@AssertTrue(message = "domain 不能为空")
@SuppressWarnings("RedundantIfStatement")
@AssertTrue(message = "domain 不能为空")
@JsonIgnore
public boolean isDomainValid() {
// 如果是七牛,必须带有 domain
if (endpoint.contains(ENDPOINT_QINIU) && StrUtil.isEmpty(domain)) {
if (StrUtil.contains(endpoint, ENDPOINT_QINIU) && StrUtil.isEmpty(domain)) {
return false;
}
return true;