From 9da70a8aeb03e6c98e712ef7ed989b7209b7a99e Mon Sep 17 00:00:00 2001 From: awenes <1121353141@qq.com> Date: Sun, 4 Feb 2024 20:36:58 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=20=E4=BC=98=E5=8C=96=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{util => enums}/ViewContentType.java | 2 +- .../common/storage/UploadException.java | 38 +++++++++++++++++++ ...Resource.java => StorageFileEndpoint.java} | 2 +- .../common/storage/enums/StorageProvider.java | 2 +- .../convert/StorageProviderConverter.java | 2 +- .../common/storage/impl/MinIoStorage.java | 7 ++-- .../common/storage/impl/NoneStorage.java | 5 +-- .../common/storage/impl/QiNiuKodoStorage.java | 27 +------------ .../common/storage/impl/S3Storage.java | 4 +- 9 files changed, 50 insertions(+), 39 deletions(-) rename eiam-common/src/main/java/cn/topiam/employee/common/{util => enums}/ViewContentType.java (98%) create mode 100644 eiam-common/src/main/java/cn/topiam/employee/common/storage/UploadException.java rename eiam-common/src/main/java/cn/topiam/employee/common/storage/controller/{StorageFileResource.java => StorageFileEndpoint.java} (99%) diff --git a/eiam-common/src/main/java/cn/topiam/employee/common/util/ViewContentType.java b/eiam-common/src/main/java/cn/topiam/employee/common/enums/ViewContentType.java similarity index 98% rename from eiam-common/src/main/java/cn/topiam/employee/common/util/ViewContentType.java rename to eiam-common/src/main/java/cn/topiam/employee/common/enums/ViewContentType.java index 39e097b3..319389a3 100644 --- a/eiam-common/src/main/java/cn/topiam/employee/common/util/ViewContentType.java +++ b/eiam-common/src/main/java/cn/topiam/employee/common/enums/ViewContentType.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -package cn.topiam.employee.common.util; +package cn.topiam.employee.common.enums; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; diff --git a/eiam-common/src/main/java/cn/topiam/employee/common/storage/UploadException.java b/eiam-common/src/main/java/cn/topiam/employee/common/storage/UploadException.java new file mode 100644 index 00000000..92d8d0e8 --- /dev/null +++ b/eiam-common/src/main/java/cn/topiam/employee/common/storage/UploadException.java @@ -0,0 +1,38 @@ +/* + * eiam-common - Employee Identity and Access Management + * Copyright © 2022-Present Jinan Yuanchuang Network Technology Co., Ltd. (support@topiam.cn) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package cn.topiam.employee.common.storage; + +import java.io.Serial; + +import org.springframework.http.HttpStatus; + +/** + * 存储服务异常 + * + * @author TopIAM + * Created by support@topiam.cn on 2020/8/19 22:53 + */ +public class UploadException extends StorageProviderException { + @Serial + private static final long serialVersionUID = 6249098979022610064L; + + public UploadException(Throwable cause) { + super(cause, "Upload fail", cause.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); + } + +} diff --git a/eiam-common/src/main/java/cn/topiam/employee/common/storage/controller/StorageFileResource.java b/eiam-common/src/main/java/cn/topiam/employee/common/storage/controller/StorageFileEndpoint.java similarity index 99% rename from eiam-common/src/main/java/cn/topiam/employee/common/storage/controller/StorageFileResource.java rename to eiam-common/src/main/java/cn/topiam/employee/common/storage/controller/StorageFileEndpoint.java index c4a50808..15554b01 100644 --- a/eiam-common/src/main/java/cn/topiam/employee/common/storage/controller/StorageFileResource.java +++ b/eiam-common/src/main/java/cn/topiam/employee/common/storage/controller/StorageFileEndpoint.java @@ -55,7 +55,7 @@ import jakarta.servlet.MultipartConfigElement; @RequestMapping(value = StorageConstants.STORAGE_PATH, produces = MediaType.APPLICATION_JSON_VALUE) @AllArgsConstructor @Slf4j -public class StorageFileResource { +public class StorageFileEndpoint { /** * 上传文件 diff --git a/eiam-common/src/main/java/cn/topiam/employee/common/storage/enums/StorageProvider.java b/eiam-common/src/main/java/cn/topiam/employee/common/storage/enums/StorageProvider.java index 3d8ae95d..79fea789 100644 --- a/eiam-common/src/main/java/cn/topiam/employee/common/storage/enums/StorageProvider.java +++ b/eiam-common/src/main/java/cn/topiam/employee/common/storage/enums/StorageProvider.java @@ -26,7 +26,7 @@ import cn.topiam.employee.common.storage.impl.*; import cn.topiam.employee.support.web.converter.EnumConvert; /** - * 短信平台 + * 存储提供商 * * @author TopIAM * Created by support@topiam.cn on 2020/8/19 diff --git a/eiam-common/src/main/java/cn/topiam/employee/common/storage/enums/convert/StorageProviderConverter.java b/eiam-common/src/main/java/cn/topiam/employee/common/storage/enums/convert/StorageProviderConverter.java index 20c2cd85..ee56e36a 100644 --- a/eiam-common/src/main/java/cn/topiam/employee/common/storage/enums/convert/StorageProviderConverter.java +++ b/eiam-common/src/main/java/cn/topiam/employee/common/storage/enums/convert/StorageProviderConverter.java @@ -25,7 +25,7 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; /** - * SmsPlatformWritingConverter + * StorageProviderConverter * * @author TopIAM * Created by support@topiam.cn on 2020/12/5 21:52 diff --git a/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/MinIoStorage.java b/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/MinIoStorage.java index 5e637eec..e5122123 100644 --- a/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/MinIoStorage.java +++ b/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/MinIoStorage.java @@ -31,11 +31,12 @@ import org.jetbrains.annotations.NotNull; import org.springframework.http.HttpHeaders; import org.springframework.util.MimeTypeUtils; +import cn.topiam.employee.common.enums.ViewContentType; import cn.topiam.employee.common.jackjson.encrypt.JsonPropertyEncrypt; import cn.topiam.employee.common.storage.AbstractStorage; import cn.topiam.employee.common.storage.StorageConfig; import cn.topiam.employee.common.storage.StorageProviderException; -import cn.topiam.employee.common.util.ViewContentType; +import cn.topiam.employee.common.storage.UploadException; import lombok.Data; import lombok.EqualsAndHashCode; @@ -100,8 +101,8 @@ public class MinIoStorage extends AbstractStorage { + SEPARATOR + URLEncoder.encode(key, StandardCharsets.UTF_8).replaceAll("\\+", "%20"); } catch (Exception e) { - log.error("minio upload exception: {}", e.getMessage(), e); - throw new StorageProviderException("minio upload exception", e); + log.error("Minio upload exception: {}", e.getMessage(), e); + throw new UploadException(e); } } diff --git a/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/NoneStorage.java b/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/NoneStorage.java index c8751c57..20d80cd8 100644 --- a/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/NoneStorage.java +++ b/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/NoneStorage.java @@ -21,7 +21,7 @@ import java.io.InputStream; import org.jetbrains.annotations.NotNull; -import cn.topiam.employee.common.storage.AbstractStorage; +import cn.topiam.employee.common.storage.Storage; import cn.topiam.employee.common.storage.StorageProviderException; /** @@ -30,10 +30,9 @@ import cn.topiam.employee.common.storage.StorageProviderException; * @author TopIAM * Created by support@topiam.cn on 2021/11/10 21:32 */ -public class NoneStorage extends AbstractStorage { +public class NoneStorage implements Storage { public NoneStorage() { - super(null); } @Override diff --git a/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/QiNiuKodoStorage.java b/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/QiNiuKodoStorage.java index 61283456..8c86c3cd 100644 --- a/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/QiNiuKodoStorage.java +++ b/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/QiNiuKodoStorage.java @@ -59,35 +59,10 @@ public class QiNiuKodoStorage extends AbstractStorage { public QiNiuKodoStorage(StorageConfig config) { super(config); qiNiuConfig = (Config) this.config.getConfig(); - Configuration cfg = new Configuration(Region.huadong()); + Configuration cfg = new Configuration(Region.createWithRegionId("z0")); uploadManager = new UploadManager(cfg); - // try { - // createBucket(cfg); - // } catch (Exception e) { - // log.error("create bucket error: {}", e.getMessage(), e); - // } } - // private void createBucket(Configuration cfg) { - // try { - // Auth auth = Auth.create(qiNiuConfig.getAccessKey(), qiNiuConfig.getSecretKey()); - // BucketManager bucketManager = new BucketManager(auth, cfg); - // Response response = bucketManager.createBucket(qiNiuConfig.getBucket(), "z0"); - // //解析创建成功的结果 - // BucketInfo putRet = JSON.parseObject(response.bodyString(), BucketInfo.class); - // log.info("qi niu create bucket response: {}", putRet); - // } catch (QiniuException ex) { - // Response r = ex.response; - // log.error("qi niu create bucket fail response: {}", r.toString()); - // try { - // log.error("qi niu create bucket fail response body: {}", r.bodyString()); - // } catch (QiniuException ex2) { - // //ignore - // } - // throw new StorageProviderException("qiu niu create bucket exception", ex); - // } - // } - @Override public String upload(@NotNull String fileName, InputStream inputStream) throws StorageProviderException { diff --git a/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/S3Storage.java b/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/S3Storage.java index 192d9445..5bda0e52 100644 --- a/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/S3Storage.java +++ b/eiam-common/src/main/java/cn/topiam/employee/common/storage/impl/S3Storage.java @@ -49,10 +49,8 @@ import software.amazon.awssdk.services.s3.presigner.model.PresignedGetObjectRequ import static cn.topiam.employee.common.constant.StorageConstants.URL_REGEXP; /** - * S3 协议实现 - * * @author TopIAM - * Created by support@topiam.cn on 2023/08/29 22:30 + * Created by support@topiam.cn on 2021/11/10 21:36 */ @Slf4j public class S3Storage extends AbstractStorage {