diff --git a/pom.xml b/pom.xml
index 79330ba..bcd283e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,6 +24,7 @@
5.1.2
3.8.0
[7.2.0, 7.2.99]
+ 4.2.2
1.7
3.9.0
3.0.1
@@ -161,6 +162,12 @@
poi-ooxml
${poi.version}
+
+
+ com.upyun
+ java-sdk
+ ${upyun.version}
+
diff --git a/tduck-storage/pom.xml b/tduck-storage/pom.xml
index 99a89c3..5394910 100644
--- a/tduck-storage/pom.xml
+++ b/tduck-storage/pom.xml
@@ -34,5 +34,9 @@
com.aliyun.oss
aliyun-sdk-oss
+
+ com.upyun
+ java-sdk
+
\ No newline at end of file
diff --git a/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/OssStorageFactory.java b/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/OssStorageFactory.java
index a0534f7..0efe287 100644
--- a/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/OssStorageFactory.java
+++ b/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/OssStorageFactory.java
@@ -23,6 +23,8 @@ public final class OssStorageFactory {
return new QiniuCloudStorageService(config);
} else if (config.getOssType() == OssTypeEnum.ALIYUN) {
return new AliyunOssStorageService(config);
+ } else if (config.getOssType() == OssTypeEnum.UPYUN) {
+ return new UpyunStorageService(config);
}
return null;
}
diff --git a/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/UpyunStorageService.java b/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/UpyunStorageService.java
new file mode 100644
index 0000000..96b7c02
--- /dev/null
+++ b/tduck-storage/src/main/java/com/tduck/cloud/storage/cloud/UpyunStorageService.java
@@ -0,0 +1,61 @@
+package com.tduck.cloud.storage.cloud;
+
+import cn.hutool.core.util.StrUtil;
+import com.qiniu.storage.Configuration;
+import com.qiniu.storage.Region;
+import com.qiniu.storage.UploadManager;
+import com.qiniu.util.Auth;
+import com.upyun.RestManager;
+import com.upyun.UpException;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * @author : smalljop
+ * @description : 又拍云存储
+ * @create : 2021/03/25 11:02
+ **/
+public class UpyunStorageService extends OssStorageService {
+
+ RestManager manager;
+
+
+ UpyunStorageService(OssStorageConfig config) {
+ this.config = config;
+ this.manager = new RestManager(config.getBucketName(), config.getAccessKeyId(), config.getAccessKeySecret());
+ this.manager.setApiDomain(RestManager.ED_AUTO);
+ }
+
+
+ @Override
+ public String upload(InputStream inputStream, String path) {
+ try {
+ manager.writeFile(path, inputStream, null).body();
+ return config.getDomain() + "/" + path;
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (UpException e) {
+ e.printStackTrace();
+ }
+ return StrUtil.EMPTY;
+ }
+
+ @Override
+ public String upload(byte[] data, String path) {
+ try {
+ manager.writeFile(path, data, null).body();
+ return config.getDomain() + path;
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (UpException e) {
+ e.printStackTrace();
+ }
+ return StrUtil.EMPTY;
+ }
+
+ @Override
+ public void delete(String path) {
+
+ }
+}
diff --git a/tduck-storage/src/main/java/com/tduck/cloud/storage/entity/enums/OssTypeEnum.java b/tduck-storage/src/main/java/com/tduck/cloud/storage/entity/enums/OssTypeEnum.java
index e925646..8c82241 100644
--- a/tduck-storage/src/main/java/com/tduck/cloud/storage/entity/enums/OssTypeEnum.java
+++ b/tduck-storage/src/main/java/com/tduck/cloud/storage/entity/enums/OssTypeEnum.java
@@ -18,9 +18,13 @@ public enum OssTypeEnum {
ALIYUN(0),
/**
- * 菜单
+ * 七牛云
*/
- QINIU(1);
+ QINIU(1),
+ /**
+ * 又拍云
+ */
+ UPYUN(2);
@JsonCreator