diff --git a/pom.xml b/pom.xml index 546054a..49ae74c 100644 --- a/pom.xml +++ b/pom.xml @@ -25,39 +25,26 @@ org.springframework.boot spring-boot-starter-thymeleaf + org.springframework.boot spring-boot-starter-web + org.springframework.boot spring-boot-starter-aop + org.springframework.boot spring-boot-starter-security + org.springframework.boot spring-boot-starter-data-jpa - - org.springframework.boot - spring-boot-starter-test - test - - - io.minio - minio - 3.0.10 - - - - - cn.hutool - hutool-all - 4.5.11 - org.springframework.boot @@ -70,6 +57,30 @@ 2.7.0 + + org.springframework.boot + spring-boot-configuration-processor + true + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + com.h2database + h2 + runtime + + + + + cn.hutool + hutool-all + 4.5.11 + + com.upyun @@ -78,21 +89,15 @@ - com.qiniu - qiniu-java-sdk - 7.2.23 + com.amazonaws + aws-java-sdk-s3 + 1.11.699 - com.huaweicloud - esdk-obs-java - 3.19.5 - - - - com.aliyun.oss - aliyun-sdk-oss - 3.5.0 + org.apache.httpcomponents + httpclient + 4.5.8 @@ -101,34 +106,17 @@ - - org.springframework.boot - spring-boot-configuration-processor - true - - commons-net commons-net 3.6 - - com.qcloud - cos_api - 5.6.3 - - - - com.h2database - h2 - runtime - - org.projectlombok lombok + org jaudiotagger @@ -141,40 +129,11 @@ 0.9.1 - - org.aspectj - aspectjweaver - - - - org.aspectj - aspectjrt - - - - org.springframework.boot - spring-boot-starter-data-redis - - - - commons-validator - commons-validator - 1.6 - - - - com.google.guava - guava - 28.1-jre - - - mysql mysql-connector-java - diff --git a/src/main/java/im/zhaojun/aliyun/service/AliyunServiceImpl.java b/src/main/java/im/zhaojun/aliyun/service/AliyunServiceImpl.java index 7d55b44..fd01d33 100644 --- a/src/main/java/im/zhaojun/aliyun/service/AliyunServiceImpl.java +++ b/src/main/java/im/zhaojun/aliyun/service/AliyunServiceImpl.java @@ -4,28 +4,21 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.common.config.ZFileCacheConfiguration; -import im.zhaojun.common.model.S3Model; import im.zhaojun.common.model.StorageConfig; import im.zhaojun.common.model.constant.StorageConfigConstant; -import im.zhaojun.common.model.dto.FileItemDTO; import im.zhaojun.common.model.enums.StorageTypeEnum; import im.zhaojun.common.service.AbstractS3FileService; import im.zhaojun.common.service.FileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.cache.annotation.CacheConfig; -import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; -import java.util.List; import java.util.Map; /** * @author zhaojun */ @Service -@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator") public class AliyunServiceImpl extends AbstractS3FileService implements FileService { private static final Logger log = LoggerFactory.getLogger(AliyunServiceImpl.class); @@ -33,43 +26,26 @@ public class AliyunServiceImpl extends AbstractS3FileService implements FileServ @Override public void init() { try { - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.ALIYUN); + Map stringStorageConfigMap = storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.ALIYUN); String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - String bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - String domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); - String basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); - - s3Model = S3Model.builder().bucketName(bucketName).basePath(basePath).domain(domain).build(); + super.bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); + super.domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); + super.basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); - s3Client = AmazonS3ClientBuilder.standard() + super.s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials)) .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, "oss")).build(); isInitialized = testConnection(); } catch (Exception e) { - log.debug(StorageTypeEnum.ALIYUN.getDescription() + "初始化异常, 已跳过"); + log.debug(getStorageTypeEnum().getDescription() + "初始化异常, 已跳过"); } } - @Override - @Cacheable - public List fileList(String path) throws Exception { - s3Model.setPath(path); - return s3FileList(s3Client, s3Model); - } - - @Override - @Cacheable - public String getDownloadUrl(String path) { - s3Model.setPath(path); - return s3ObjectUrl(s3Client, s3Model); - } - @Override public StorageTypeEnum getStorageTypeEnum() { return StorageTypeEnum.ALIYUN; diff --git a/src/main/java/im/zhaojun/common/model/S3Model.java b/src/main/java/im/zhaojun/common/model/S3Model.java deleted file mode 100644 index 822ebf8..0000000 --- a/src/main/java/im/zhaojun/common/model/S3Model.java +++ /dev/null @@ -1,36 +0,0 @@ -package im.zhaojun.common.model; - -import cn.hutool.core.util.ObjectUtil; -import im.zhaojun.common.util.StringUtils; -import lombok.Builder; -import lombok.Data; - -/** - * @author zhaojun - * @date 2019/12/26 22:07 - */ -@Builder -@Data -public class S3Model { - - private String bucketName; - - private String path; - - private String basePath; - - private String domain; - - private long timeout; - - /** - * 获取 basePath + path 的全路径地址. - * @return basePath + path 的全路径地址. - */ - public String getFullPath() { - String basePath = ObjectUtil.defaultIfNull(this.basePath, ""); - String path = ObjectUtil.defaultIfNull(this.path, ""); - return StringUtils.removeDuplicateSeparator(basePath + "/" + path); - } - -} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/common/service/AbstractS3FileService.java b/src/main/java/im/zhaojun/common/service/AbstractS3FileService.java index b85cd3f..461ecb0 100644 --- a/src/main/java/im/zhaojun/common/service/AbstractS3FileService.java +++ b/src/main/java/im/zhaojun/common/service/AbstractS3FileService.java @@ -1,15 +1,18 @@ package im.zhaojun.common.service; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.URLUtil; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.ListObjectsRequest; import com.amazonaws.services.s3.model.ObjectListing; import com.amazonaws.services.s3.model.S3ObjectSummary; -import im.zhaojun.common.model.S3Model; +import im.zhaojun.common.config.ZFileCacheConfiguration; import im.zhaojun.common.model.dto.FileItemDTO; import im.zhaojun.common.model.enums.FileTypeEnum; import im.zhaojun.common.util.StringUtils; import org.springframework.beans.factory.annotation.Value; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.Cacheable; import javax.annotation.Resource; import java.net.URL; @@ -21,6 +24,7 @@ import java.util.List; * @author zhaojun * @date 2019/12/26 22:26 */ +@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator") public abstract class AbstractS3FileService extends AbstractFileService { @Value("${zfile.cache.timeout}") @@ -29,23 +33,38 @@ public abstract class AbstractS3FileService extends AbstractFileService { @Resource protected StorageConfigService storageConfigService; + protected String path; + protected String basePath; + protected String bucketName; + + protected String domain; + protected AmazonS3 s3Client; - protected S3Model s3Model; + @Override + @Cacheable + public List fileList(String path) { + this.path = path; + return s3FileList(path); + } + + @Override + @Cacheable + public String getDownloadUrl(String path) { + this.path = path; + return s3ObjectUrl(path); + } /** * 获取 S3 指定目录下的对象列表 - * @param s3Client S3 客户端连接 - * @param s3Model S3 对象 + * @param path 路径 * @return 指定目录下的对象列表 - * @throws Exception 获取过程中出现的异常 */ - public List s3FileList(AmazonS3 s3Client, S3Model s3Model) throws Exception { - String path = StringUtils.removeFirstSeparator(s3Model.getPath()); - String fullPath = StringUtils.removeFirstSeparator(s3Model.getFullPath()); - String bucketName = s3Model.getBucketName(); + public List s3FileList(String path) { + path = StringUtils.removeFirstSeparator(path); + String fullPath = StringUtils.removeFirstSeparator(getFullPath()); List fileItemList = new ArrayList<>(); ObjectListing objectListing = s3Client.listObjects(new ListObjectsRequest(bucketName, fullPath, "", "/", 1000)); @@ -76,14 +95,10 @@ public abstract class AbstractS3FileService extends AbstractFileService { /** * 获取对象的访问链接, 如果指定了域名, 则替换为自定义域名. - * @param s3Client S3 客户端连接 - * @param s3Model S3 对象 * @return S3 对象访问地址 */ - public String s3ObjectUrl(AmazonS3 s3Client, S3Model s3Model) { - String fullPath = StringUtils.removeFirstSeparator(s3Model.getFullPath()); - String bucketName = s3Model.getBucketName(); - String domain = s3Model.getDomain(); + public String s3ObjectUrl(String path) { + String fullPath = StringUtils.removeFirstSeparator(StringUtils.removeDuplicateSeparator(basePath + "/" + path)); Date expirationDate = new Date(System.currentTimeMillis() + timeout * 1000); URL url = s3Client.generatePresignedUrl(bucketName, fullPath, expirationDate); @@ -94,4 +109,14 @@ public abstract class AbstractS3FileService extends AbstractFileService { } return defaultUrl; } -} + + /** + * 获取 basePath + path 的全路径地址. + * @return basePath + path 的全路径地址. + */ + public String getFullPath() { + String basePath = ObjectUtil.defaultIfNull(this.basePath, ""); + String path = ObjectUtil.defaultIfNull(this.path, ""); + return StringUtils.removeDuplicateSeparator(basePath + "/" + path); + } +} \ No newline at end of file diff --git a/src/main/java/im/zhaojun/common/service/FileService.java b/src/main/java/im/zhaojun/common/service/FileService.java index 8a18861..da4c34f 100644 --- a/src/main/java/im/zhaojun/common/service/FileService.java +++ b/src/main/java/im/zhaojun/common/service/FileService.java @@ -13,7 +13,6 @@ public interface FileService { * 获取指定路径下的文件及文件及 * @param path 文件路径 * @return 文件及文件夹列表 - * @throws Exception 获取时可能抛出的任何异常, 如 key 异常, 网络超时, 路径不存在等问题. */ List fileList(String path) throws Exception; @@ -21,8 +20,7 @@ public interface FileService { * 获取文件下载地址 * @param path 文件路径 * @return 文件下载地址 - * @throws Exception 生成下载地址异常 */ - String getDownloadUrl(String path) throws Exception; + String getDownloadUrl(String path); } diff --git a/src/main/java/im/zhaojun/ftp/service/FtpServiceImpl.java b/src/main/java/im/zhaojun/ftp/service/FtpServiceImpl.java index 85ce914..ae08a1d 100644 --- a/src/main/java/im/zhaojun/ftp/service/FtpServiceImpl.java +++ b/src/main/java/im/zhaojun/ftp/service/FtpServiceImpl.java @@ -54,7 +54,7 @@ public class FtpServiceImpl extends AbstractFileService implements FileService { ftp = new Ftp(host, Integer.parseInt(port), username, password); isInitialized = testConnection(); } catch (Exception e) { - log.debug(StorageTypeEnum.FTP.getDescription() + "初始化异常, 已跳过"); + log.debug(getStorageTypeEnum().getDescription() + "初始化异常, 已跳过"); } } diff --git a/src/main/java/im/zhaojun/huawei/service/HuaweiServiceImpl.java b/src/main/java/im/zhaojun/huawei/service/HuaweiServiceImpl.java index b0b4e12..5a536c7 100644 --- a/src/main/java/im/zhaojun/huawei/service/HuaweiServiceImpl.java +++ b/src/main/java/im/zhaojun/huawei/service/HuaweiServiceImpl.java @@ -4,28 +4,21 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.common.config.ZFileCacheConfiguration; -import im.zhaojun.common.model.S3Model; import im.zhaojun.common.model.StorageConfig; import im.zhaojun.common.model.constant.StorageConfigConstant; -import im.zhaojun.common.model.dto.FileItemDTO; import im.zhaojun.common.model.enums.StorageTypeEnum; import im.zhaojun.common.service.AbstractS3FileService; import im.zhaojun.common.service.FileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.cache.annotation.CacheConfig; -import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; -import java.util.List; import java.util.Map; /** * @author zhaojun */ @Service -@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator") public class HuaweiServiceImpl extends AbstractS3FileService implements FileService { private static final Logger log = LoggerFactory.getLogger(HuaweiServiceImpl.class); @@ -33,43 +26,26 @@ public class HuaweiServiceImpl extends AbstractS3FileService implements FileServ @Override public void init() { try { - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.HUAWEI); + Map stringStorageConfigMap = storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.HUAWEI); String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - String bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - String domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); - String basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); + bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); + domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); + basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials)) .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, "obs")).build(); - s3Model = S3Model.builder().bucketName(bucketName).basePath(basePath).domain(domain).build(); - isInitialized = testConnection(); } catch (Exception e) { - log.debug(StorageTypeEnum.HUAWEI.getDescription() + "初始化异常, 已跳过"); + log.debug(getStorageTypeEnum().getDescription() + "初始化异常, 已跳过"); } } - @Override - @Cacheable - public List fileList(String path) throws Exception { - s3Model.setPath(path); - return s3FileList(s3Client, s3Model); - } - - @Override - @Cacheable - public String getDownloadUrl(String path) { - s3Model.setPath(path); - return s3ObjectUrl(s3Client, s3Model); - } - @Override public StorageTypeEnum getStorageTypeEnum() { return StorageTypeEnum.HUAWEI; diff --git a/src/main/java/im/zhaojun/local/service/LocalServiceImpl.java b/src/main/java/im/zhaojun/local/service/LocalServiceImpl.java index bb6866c..b869c52 100644 --- a/src/main/java/im/zhaojun/local/service/LocalServiceImpl.java +++ b/src/main/java/im/zhaojun/local/service/LocalServiceImpl.java @@ -47,7 +47,7 @@ public class LocalServiceImpl extends AbstractFileService implements FileService filePath = stringStorageConfigMap.get(StorageConfigConstant.FILE_PATH_KEY).getValue(); isInitialized = testConnection(); } catch (Exception e) { - log.debug(StorageTypeEnum.LOCAL.getDescription() + "初始化异常, 已跳过"); + log.debug(getStorageTypeEnum().getDescription() + "初始化异常, 已跳过"); } } diff --git a/src/main/java/im/zhaojun/minio/MinIOServiceImpl.java b/src/main/java/im/zhaojun/minio/MinIOServiceImpl.java index 03e7c43..19b570c 100644 --- a/src/main/java/im/zhaojun/minio/MinIOServiceImpl.java +++ b/src/main/java/im/zhaojun/minio/MinIOServiceImpl.java @@ -4,28 +4,21 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.common.config.ZFileCacheConfiguration; -import im.zhaojun.common.model.S3Model; import im.zhaojun.common.model.StorageConfig; import im.zhaojun.common.model.constant.StorageConfigConstant; -import im.zhaojun.common.model.dto.FileItemDTO; import im.zhaojun.common.model.enums.StorageTypeEnum; import im.zhaojun.common.service.AbstractS3FileService; import im.zhaojun.common.service.FileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.cache.annotation.CacheConfig; -import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; -import java.util.List; import java.util.Map; /** * @author zhaojun */ @Service -@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator") public class MinIOServiceImpl extends AbstractS3FileService implements FileService { private static final Logger log = LoggerFactory.getLogger(MinIOServiceImpl.class); @@ -33,40 +26,25 @@ public class MinIOServiceImpl extends AbstractS3FileService implements FileServi @Override public void init() { try { - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.MINIO); + Map stringStorageConfigMap = storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.MINIO); String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - String bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - String basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); + bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); + basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials)) .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, "minio")).build(); - s3Model = S3Model.builder().bucketName(bucketName).basePath(basePath).build(); - isInitialized = testConnection(); } catch (Exception e) { - log.debug(StorageTypeEnum.MINIO.getDescription() + "初始化异常, 已跳过"); + log.debug(getStorageTypeEnum().getDescription() + "初始化异常, 已跳过"); } } - @Override - @Cacheable - public List fileList(String path) throws Exception { - s3Model.setPath(path); - return s3FileList(s3Client, s3Model); - } - @Override - @Cacheable - public String getDownloadUrl(String path) { - s3Model.setPath(path); - return s3ObjectUrl(s3Client, s3Model); - } @Override public StorageTypeEnum getStorageTypeEnum() { diff --git a/src/main/java/im/zhaojun/qiniu/service/QiniuServiceImpl.java b/src/main/java/im/zhaojun/qiniu/service/QiniuServiceImpl.java index ab32e65..73f61fe 100644 --- a/src/main/java/im/zhaojun/qiniu/service/QiniuServiceImpl.java +++ b/src/main/java/im/zhaojun/qiniu/service/QiniuServiceImpl.java @@ -4,29 +4,22 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.common.config.ZFileCacheConfiguration; -import im.zhaojun.common.model.S3Model; import im.zhaojun.common.model.StorageConfig; import im.zhaojun.common.model.constant.StorageConfigConstant; -import im.zhaojun.common.model.dto.FileItemDTO; import im.zhaojun.common.model.enums.StorageTypeEnum; import im.zhaojun.common.service.AbstractS3FileService; import im.zhaojun.common.service.FileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; -import org.springframework.cache.annotation.CacheConfig; -import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; -import java.util.List; import java.util.Map; /** * @author zhaojun */ @Service -@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator") public class QiniuServiceImpl extends AbstractS3FileService implements FileService { private static final Logger log = LoggerFactory.getLogger(QiniuServiceImpl.class); @@ -37,42 +30,26 @@ public class QiniuServiceImpl extends AbstractS3FileService implements FileServi @Override public void init() { try { - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.QINIU); + Map stringStorageConfigMap = storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.QINIU); String accessKey = stringStorageConfigMap.get(StorageConfigConstant.ACCESS_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String endPoint = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - String bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - String domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); - String basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); + + bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); + domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); + basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials)) .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, "kodo")).build(); - s3Model = S3Model.builder().bucketName(bucketName).basePath(basePath).domain(domain).build(); - isInitialized = testConnection(); } catch (Exception e) { - log.debug(StorageTypeEnum.QINIU.getDescription() + "初始化异常, 已跳过"); + log.debug(getStorageTypeEnum().getDescription() + "初始化异常, 已跳过"); } } - @Override - @Cacheable - public List fileList(String path) throws Exception { - s3Model.setPath(path); - return s3FileList(s3Client, s3Model); - } - - @Override - @Cacheable - public String getDownloadUrl(String path) { - s3Model.setPath(path); - return s3ObjectUrl(s3Client, s3Model); - } - @Override public StorageTypeEnum getStorageTypeEnum() { return StorageTypeEnum.QINIU; diff --git a/src/main/java/im/zhaojun/tencent/TencentServiceImpl.java b/src/main/java/im/zhaojun/tencent/TencentServiceImpl.java index eb6295d..038815b 100644 --- a/src/main/java/im/zhaojun/tencent/TencentServiceImpl.java +++ b/src/main/java/im/zhaojun/tencent/TencentServiceImpl.java @@ -4,28 +4,21 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import im.zhaojun.common.config.ZFileCacheConfiguration; -import im.zhaojun.common.model.S3Model; import im.zhaojun.common.model.StorageConfig; import im.zhaojun.common.model.constant.StorageConfigConstant; -import im.zhaojun.common.model.dto.FileItemDTO; import im.zhaojun.common.model.enums.StorageTypeEnum; import im.zhaojun.common.service.AbstractS3FileService; import im.zhaojun.common.service.FileService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.cache.annotation.CacheConfig; -import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; -import java.util.List; import java.util.Map; /** * @author zhaojun */ @Service -@CacheConfig(cacheNames = ZFileCacheConfiguration.CACHE_NAME, keyGenerator = "keyGenerator") public class TencentServiceImpl extends AbstractS3FileService implements FileService { private static final Logger log = LoggerFactory.getLogger(TencentServiceImpl.class); @@ -33,13 +26,12 @@ public class TencentServiceImpl extends AbstractS3FileService implements FileSer @Override public void init() { try { - Map stringStorageConfigMap = - storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.TENCENT); + Map stringStorageConfigMap = storageConfigService.selectStorageConfigMapByKey(StorageTypeEnum.TENCENT); String secretId = stringStorageConfigMap.get(StorageConfigConstant.SECRET_ID_KEY).getValue(); String secretKey = stringStorageConfigMap.get(StorageConfigConstant.SECRET_KEY).getValue(); String regionName = stringStorageConfigMap.get(StorageConfigConstant.ENDPOINT_KEY).getValue(); - String bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); - String domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); + bucketName = stringStorageConfigMap.get(StorageConfigConstant.BUCKET_NAME_KEY).getValue(); + domain = stringStorageConfigMap.get(StorageConfigConstant.DOMAIN_KEY).getValue(); basePath = stringStorageConfigMap.get(StorageConfigConstant.BASE_PATH).getValue(); BasicAWSCredentials credentials = new BasicAWSCredentials(secretId, secretKey); @@ -47,27 +39,13 @@ public class TencentServiceImpl extends AbstractS3FileService implements FileSer .withCredentials(new AWSStaticCredentialsProvider(credentials)) .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(regionName, "cos")).build(); - s3Model = S3Model.builder().bucketName(bucketName).domain(domain).build(); - isInitialized = testConnection(); } catch (Exception e) { - log.debug(StorageTypeEnum.TENCENT.getDescription() + "初始化异常, 已跳过"); + log.debug(getStorageTypeEnum().getDescription() + "初始化异常, 已跳过"); } } - @Override - @Cacheable - public List fileList(String path) throws Exception { - s3Model.setPath(path); - return s3FileList(s3Client, s3Model); - } - @Override - @Cacheable - public String getDownloadUrl(String path) { - s3Model.setPath(path); - return s3ObjectUrl(s3Client, s3Model); - } @Override public StorageTypeEnum getStorageTypeEnum() { diff --git a/src/main/java/im/zhaojun/upyun/service/UpYunServiceImpl.java b/src/main/java/im/zhaojun/upyun/service/UpYunServiceImpl.java index a849caf..035daa7 100644 --- a/src/main/java/im/zhaojun/upyun/service/UpYunServiceImpl.java +++ b/src/main/java/im/zhaojun/upyun/service/UpYunServiceImpl.java @@ -57,7 +57,7 @@ public class UpYunServiceImpl extends AbstractFileService implements FileService upYun = new UpYun(bucketName, username, password); isInitialized = testConnection(); } catch (Exception e) { - log.debug(StorageTypeEnum.UPYUN.getDescription() + "初始化异常, 已跳过"); + log.debug(getStorageTypeEnum().getDescription() + "初始化异常, 已跳过"); } }