From 8cc0437cff48076e9c53b64b1c4ee936bac8054b Mon Sep 17 00:00:00 2001
From: "pref_mail@163.com" <123456>
Date: Wed, 13 Sep 2023 18:11:20 +0800
Subject: [PATCH] =?UTF-8?q?1.=E5=BC=80=E6=94=BE=E5=AD=98=E5=82=A8=E7=9A=84?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=9A=84=E8=B0=83=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blade-ops-api/blade-resource-api/pom.xml | 5 +++
.../resource/feign/IOssClient.java | 38 +++++++++++++++++++
.../resource/feign/IOssClientFallback.java | 17 +++++++++
.../resource/builder/oss/OssBuilder.java | 12 ++++++
.../springblade/resource/feign/OssClient.java | 31 +++++++++++++++
5 files changed, 103 insertions(+)
create mode 100644 blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/IOssClient.java
create mode 100644 blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/IOssClientFallback.java
create mode 100644 blade-ops/blade-resource/src/main/java/org/springblade/resource/feign/OssClient.java
diff --git a/blade-ops-api/blade-resource-api/pom.xml b/blade-ops-api/blade-resource-api/pom.xml
index 889149c9..b840b978 100644
--- a/blade-ops-api/blade-resource-api/pom.xml
+++ b/blade-ops-api/blade-resource-api/pom.xml
@@ -23,6 +23,11 @@
org.springblade
blade-starter-tenant
+
+
+ org.springblade
+ blade-starter-oss
+
diff --git a/blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/IOssClient.java b/blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/IOssClient.java
new file mode 100644
index 00000000..5e8dea57
--- /dev/null
+++ b/blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/IOssClient.java
@@ -0,0 +1,38 @@
+package org.springblade.resource.feign;
+
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.oss.model.BladeFile;
+import org.springblade.core.sms.model.SmsResponse;
+import org.springblade.core.tool.api.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 文件上传feign
+ */
+@FeignClient(
+ value = AppConstant.APPLICATION_RESOURCE_NAME
+ ,
+ fallback = IOssClientFallback.class
+)
+public interface IOssClient {
+
+ String API_PREFIX = "/client";
+ // 文件上传
+ String FILE_UPLOAD = API_PREFIX + "/file_upload";
+
+
+
+ @PostMapping(name = FILE_UPLOAD,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ R fileUpload(@RequestPart(value = "file") MultipartFile file);
+
+
+
+
+
+
+}
diff --git a/blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/IOssClientFallback.java b/blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/IOssClientFallback.java
new file mode 100644
index 00000000..5b9114e5
--- /dev/null
+++ b/blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/IOssClientFallback.java
@@ -0,0 +1,17 @@
+package org.springblade.resource.feign;
+
+import org.springblade.core.sms.model.SmsResponse;
+import org.springblade.core.tool.api.R;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+@Component
+public class IOssClientFallback implements IOssClient {
+
+
+
+ @Override
+ public R fileUpload(MultipartFile files) {
+ return R.fail("远程调用失败");
+ }
+}
diff --git a/blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java b/blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java
index 1db1fe6c..40d2b5c1 100644
--- a/blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java
+++ b/blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java
@@ -86,6 +86,17 @@ public class OssBuilder {
*/
public OssTemplate template(String code) {
String tenantId = AuthUtil.getTenantId();
+ return template(code, tenantId);
+ }
+
+
+ /**
+ * 构建存储对象
+ * @param code
+ * @param tenantId
+ * @return
+ */
+ public OssTemplate template(String code,String tenantId ) {
Oss oss = getOss(tenantId, code);
Oss ossCached = ossPool.get(tenantId);
OssTemplate template = templatePool.get(tenantId);
@@ -118,6 +129,7 @@ public class OssBuilder {
return template;
}
+
/**
* 获取对象存储实体
*
diff --git a/blade-ops/blade-resource/src/main/java/org/springblade/resource/feign/OssClient.java b/blade-ops/blade-resource/src/main/java/org/springblade/resource/feign/OssClient.java
new file mode 100644
index 00000000..415a1bab
--- /dev/null
+++ b/blade-ops/blade-resource/src/main/java/org/springblade/resource/feign/OssClient.java
@@ -0,0 +1,31 @@
+package org.springblade.resource.feign;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.oss.model.BladeFile;
+import org.springblade.core.sms.model.SmsResponse;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.resource.builder.oss.OssBuilder;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+@NonDS
+@RestController
+@AllArgsConstructor
+public class OssClient implements IOssClient {
+
+ /**
+ * 对象存储构建类
+ */
+ private final OssBuilder ossBuilder;
+
+
+ @Override
+ @PostMapping(name = FILE_UPLOAD,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ public R fileUpload(@RequestPart("file") MultipartFile file) {
+ return R.data(ossBuilder.template("minio","000000").putFile(file));
+ }
+}