Bladeren bron

:zap: oss 增加资源编号字段,endpoint接口可以自由指定资源编号所对应的配置进行文件上传,不再局限于唯一启用的配置

smallchill 6 jaren geleden
bovenliggende
commit
51ff14d692

+ 2 - 1
doc/sql/mysql/bladex-saber-mysql.sql

@@ -319,6 +319,7 @@ CREATE TABLE `blade_oss`  (
   `id` bigint(64) NOT NULL COMMENT '主键',
   `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
   `category` int(2) NULL DEFAULT NULL COMMENT '分类',
+  `oss_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
   `endpoint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源地址',
   `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'accessKey',
   `secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'secretKey',
@@ -340,7 +341,7 @@ CREATE TABLE `blade_oss`  (
 -- Records of blade_oss
 -- ----------------------------
 BEGIN;
-INSERT INTO `blade_oss` VALUES (1132486733992468482, '000000', 1, 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0), (1132487155981393922, '000000', 2, 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
+INSERT INTO `blade_oss` VALUES (1132486733992468482, '000000',1, 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0), (1132487155981393922, '000000',2, 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
 COMMIT;
 
 -- ----------------------------

+ 2 - 1
doc/sql/mysql/bladex-sword-mysql.sql

@@ -319,6 +319,7 @@ CREATE TABLE `blade_oss`  (
   `id` bigint(64) NOT NULL COMMENT '主键',
   `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
   `category` int(2) NULL DEFAULT NULL COMMENT '分类',
+  `oss_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
   `endpoint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源地址',
   `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'accessKey',
   `secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'secretKey',
@@ -340,7 +341,7 @@ CREATE TABLE `blade_oss`  (
 -- Records of blade_oss
 -- ----------------------------
 BEGIN;
-INSERT INTO `blade_oss` VALUES (1132486733992468482, '000000', 1, 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0), (1132487155981393922, '000000', 2, 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
+INSERT INTO `blade_oss` VALUES (1132486733992468482, '000000',1, 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0), (1132487155981393922, '000000',2, 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
 COMMIT;
 
 -- ----------------------------

+ 4 - 2
doc/sql/oracle/bladex-saber-oracle.sql

@@ -825,6 +825,7 @@ CREATE TABLE "BLADE_OSS" (
   "ID" NUMBER(20) NOT NULL ,
   "TENANT_ID" NVARCHAR2(12) ,
   "CATEGORY" NUMBER(11) ,
+  "OSS_CODE" NVARCHAR2(32) ,
   "ENDPOINT" NVARCHAR2(255) ,
   "ACCESS_KEY" NVARCHAR2(255) ,
   "SECRET_KEY" NVARCHAR2(255) ,
@@ -859,6 +860,7 @@ DISABLE ROW MOVEMENT
 COMMENT ON COLUMN "BLADE_OSS"."ID" IS '主键';
 COMMENT ON COLUMN "BLADE_OSS"."TENANT_ID" IS '租户ID';
 COMMENT ON COLUMN "BLADE_OSS"."CATEGORY" IS '分类';
+COMMENT ON COLUMN "BLADE_OSS"."OSS_CODE" IS '资源编号';
 COMMENT ON COLUMN "BLADE_OSS"."ENDPOINT" IS '资源地址';
 COMMENT ON COLUMN "BLADE_OSS"."ACCESS_KEY" IS 'accessKey';
 COMMENT ON COLUMN "BLADE_OSS"."SECRET_KEY" IS 'secretKey';
@@ -878,8 +880,8 @@ COMMENT ON TABLE "BLADE_OSS" IS '对象存储表';
 -- ----------------------------
 -- Records of BLADE_OSS
 -- ----------------------------
-INSERT INTO "BLADE_OSS" VALUES ('1132486733992468482', '000000', '1', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:20:52', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-27 08:34:55', 'SYYYY-MM-DD HH24:MI:SS'), '2', '0');
-INSERT INTO "BLADE_OSS" VALUES ('1132487155981393922', '000000', '2', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:22:33', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-26 23:27:56', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_OSS" VALUES ('1132486733992468482', '000000', '1', 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:20:52', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-27 08:34:55', 'SYYYY-MM-DD HH24:MI:SS'), '2', '0');
+INSERT INTO "BLADE_OSS" VALUES ('1132487155981393922', '000000', '2', 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:22:33', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-26 23:27:56', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
 COMMIT;
 
 -- ----------------------------

+ 4 - 2
doc/sql/oracle/bladex-sword-oracle.sql

@@ -823,6 +823,7 @@ CREATE TABLE "BLADE_OSS" (
   "ID" NUMBER(20) NOT NULL ,
   "TENANT_ID" NVARCHAR2(12) ,
   "CATEGORY" NUMBER(11) ,
+  "OSS_CODE" NVARCHAR2(32) ,
   "ENDPOINT" NVARCHAR2(255) ,
   "ACCESS_KEY" NVARCHAR2(255) ,
   "SECRET_KEY" NVARCHAR2(255) ,
@@ -857,6 +858,7 @@ DISABLE ROW MOVEMENT
 COMMENT ON COLUMN "BLADE_OSS"."ID" IS '主键';
 COMMENT ON COLUMN "BLADE_OSS"."TENANT_ID" IS '租户ID';
 COMMENT ON COLUMN "BLADE_OSS"."CATEGORY" IS '分类';
+COMMENT ON COLUMN "BLADE_OSS"."OSS_CODE" IS '资源编号';
 COMMENT ON COLUMN "BLADE_OSS"."ENDPOINT" IS '资源地址';
 COMMENT ON COLUMN "BLADE_OSS"."ACCESS_KEY" IS 'accessKey';
 COMMENT ON COLUMN "BLADE_OSS"."SECRET_KEY" IS 'secretKey';
@@ -876,8 +878,8 @@ COMMENT ON TABLE "BLADE_OSS" IS '对象存储表';
 -- ----------------------------
 -- Records of BLADE_OSS
 -- ----------------------------
-INSERT INTO "BLADE_OSS" VALUES ('1132486733992468482', '000000', '1', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:20:52', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-27 08:34:55', 'SYYYY-MM-DD HH24:MI:SS'), '2', '0');
-INSERT INTO "BLADE_OSS" VALUES ('1132487155981393922', '000000', '2', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:22:33', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-26 23:27:56', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_OSS" VALUES ('1132486733992468482', '000000', '1', 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:20:52', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-27 08:34:55', 'SYYYY-MM-DD HH24:MI:SS'), '2', '0');
+INSERT INTO "BLADE_OSS" VALUES ('1132487155981393922', '000000', '2', 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:22:33', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-26 23:27:56', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
 COMMIT;
 
 -- ----------------------------

+ 4 - 2
doc/sql/postgresql/bladex-saber-postgresql.sql

@@ -668,6 +668,7 @@ CREATE TABLE "blade_oss" (
   "id" int8 NOT NULL,
   "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
   "category" int4,
+  "oss_code" varchar(32) COLLATE "pg_catalog"."default",
   "endpoint" varchar(255) COLLATE "pg_catalog"."default",
   "access_key" varchar(255) COLLATE "pg_catalog"."default",
   "secret_key" varchar(255) COLLATE "pg_catalog"."default",
@@ -687,6 +688,7 @@ CREATE TABLE "blade_oss" (
 COMMENT ON COLUMN "blade_oss"."id" IS '主键';
 COMMENT ON COLUMN "blade_oss"."tenant_id" IS '租户ID';
 COMMENT ON COLUMN "blade_oss"."category" IS '分类';
+COMMENT ON COLUMN "blade_oss"."oss_code" IS '资源编号';
 COMMENT ON COLUMN "blade_oss"."endpoint" IS '资源地址';
 COMMENT ON COLUMN "blade_oss"."access_key" IS 'accessKey';
 COMMENT ON COLUMN "blade_oss"."secret_key" IS 'secretKey';
@@ -707,8 +709,8 @@ COMMENT ON TABLE "blade_oss" IS '对象存储表';
 -- Records of blade_oss
 -- ----------------------------
 BEGIN;
-INSERT INTO "blade_oss" VALUES (1132486733992468482, '000000', 1, 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0);
-INSERT INTO "blade_oss" VALUES (1132487155981393922, '000000', 2, 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
+INSERT INTO "blade_oss" VALUES (1132486733992468482, '000000', 1, 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0);
+INSERT INTO "blade_oss" VALUES (1132487155981393922, '000000', 2, 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
 COMMIT;
 
 -- ----------------------------

+ 4 - 2
doc/sql/postgresql/bladex-sword-postgresql.sql

@@ -666,6 +666,7 @@ CREATE TABLE "blade_oss" (
   "id" int8 NOT NULL,
   "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
   "category" int4,
+  "oss_code" varchar(32) COLLATE "pg_catalog"."default",
   "endpoint" varchar(255) COLLATE "pg_catalog"."default",
   "access_key" varchar(255) COLLATE "pg_catalog"."default",
   "secret_key" varchar(255) COLLATE "pg_catalog"."default",
@@ -685,6 +686,7 @@ CREATE TABLE "blade_oss" (
 COMMENT ON COLUMN "blade_oss"."id" IS '主键';
 COMMENT ON COLUMN "blade_oss"."tenant_id" IS '租户ID';
 COMMENT ON COLUMN "blade_oss"."category" IS '分类';
+COMMENT ON COLUMN "blade_oss"."oss_code" IS '资源编号';
 COMMENT ON COLUMN "blade_oss"."endpoint" IS '资源地址';
 COMMENT ON COLUMN "blade_oss"."access_key" IS 'accessKey';
 COMMENT ON COLUMN "blade_oss"."secret_key" IS 'secretKey';
@@ -705,8 +707,8 @@ COMMENT ON TABLE "blade_oss" IS '对象存储表';
 -- Records of blade_oss
 -- ----------------------------
 BEGIN;
-INSERT INTO "blade_oss" VALUES (1132486733992468482, '000000', 1, 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0);
-INSERT INTO "blade_oss" VALUES (1132487155981393922, '000000', 2, 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
+INSERT INTO "blade_oss" VALUES (1132486733992468482, '000000', 1, 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0);
+INSERT INTO "blade_oss" VALUES (1132487155981393922, '000000', 2, 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
 COMMIT;
 
 -- ----------------------------

+ 0 - 4
doc/sql/update/common-update-2.3.0~2.3.1.sql

@@ -1,4 +0,0 @@
--- ----------------------------
--- 增加验证码授权类型
--- ----------------------------
-update blade_client set authorized_grant_types = 'refresh_token,password,authorization_code,captcha';

+ 5 - 0
doc/sql/update/mysql-update-2.3.1~2.4.0.sql

@@ -0,0 +1,5 @@
+-- ----------------------------
+-- 增加资源编号字段
+-- ----------------------------
+ALTER TABLE `bladex`.`blade_oss`
+    ADD COLUMN `oss_code` varchar(32) NULL COMMENT '资源编号' AFTER `category`;

+ 7 - 0
doc/sql/update/oracle-update-2.3.1~2.4.0.sql

@@ -0,0 +1,7 @@
+-- ----------------------------
+-- 增加资源编号字段
+-- ----------------------------
+ALTER TABLE "BLADEX"."BLADE_OSS"
+    ADD ("OSS_CODE" VARCHAR2(32) );
+
+COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."OSS_CODE" IS '资源编号'

+ 7 - 0
doc/sql/update/postgresql-update-2.3.1~2.4.0.sql

@@ -0,0 +1,7 @@
+-- ----------------------------
+-- 增加资源编号字段
+-- ----------------------------
+ALTER TABLE "public"."blade_oss"
+    ADD COLUMN "oss_code" varchar(32);
+
+COMMENT ON COLUMN "public"."blade_oss"."oss_code" IS '资源编号';

+ 18 - 7
src/main/java/org/springblade/modules/resource/builder/OssBuilder.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.resource.builder;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.oss.OssTemplate;
@@ -26,13 +27,16 @@ import org.springblade.core.oss.rule.BladeOssRule;
 import org.springblade.core.oss.rule.OssRule;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.core.tool.utils.WebUtil;
 import org.springblade.modules.resource.entity.Oss;
 import org.springblade.modules.resource.mapper.OssMapper;
 
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+import static org.springblade.core.cache.constant.CacheConstant.RESOURCE_CACHE;
 
 /**
  * Oss云存储统一构建类
@@ -42,6 +46,7 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
 public class OssBuilder {
 
 	public static final String OSS_CODE = "oss:code:";
+	public static final String OSS_PARAM_KEY = "code";
 
 	private final OssProperties ossProperties;
 	private final OssMapper ossMapper;
@@ -107,12 +112,18 @@ public class OssBuilder {
 	 * @return Role
 	 */
 	public Oss getOss(String tenantId) {
-		return CacheUtil.get(SYS_CACHE, OSS_CODE, tenantId, () -> {
-			Oss o = ossMapper.selectOne(
-				Wrappers.<Oss>query().lambda()
-					.eq(Oss::getStatus, OssStatusEnum.ENABLE.getNum())
-					.eq(Oss::getTenantId, tenantId)
-			);
+		String key = tenantId;
+		LambdaQueryWrapper<Oss> lqw = Wrappers.<Oss>query().lambda().eq(Oss::getTenantId, tenantId);
+		// 获取传参的资源编号并查询,若有则返回,若没有则调启用的配置
+		String ossCode = WebUtil.getParameter(OSS_PARAM_KEY);
+		if (StringUtil.isNotBlank(ossCode)) {
+			key = key.concat(StringPool.DASH).concat(ossCode);
+			lqw.eq(Oss::getOssCode, ossCode);
+		} else {
+			lqw.eq(Oss::getStatus, OssStatusEnum.ENABLE.getNum());
+		}
+		return CacheUtil.get(RESOURCE_CACHE, OSS_CODE, key, () -> {
+			Oss o = ossMapper.selectOne(lqw);
 			// 若为空则调用默认配置
 			if ((Func.isEmpty(o))) {
 				Oss defaultOss = new Oss();

+ 8 - 10
src/main/java/org/springblade/modules/resource/controller/OssController.java

@@ -23,26 +23,24 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.core.boot.ctrl.BladeController;
-import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.launch.constant.AppConstant;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.annotation.PreAuth;
-import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.constant.RoleConstant;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.modules.resource.builder.OssBuilder;
 import org.springblade.modules.resource.entity.Oss;
 import org.springblade.modules.resource.entity.OssVO;
 import org.springblade.modules.resource.service.IOssService;
 import org.springblade.modules.resource.wrapper.OssWrapper;
+import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
 
-import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+import static org.springblade.core.cache.constant.CacheConstant.RESOURCE_CACHE;
 
 /**
  * 控制器
@@ -99,8 +97,8 @@ public class OssController extends BladeController {
 	@PostMapping("/save")
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入oss")
+	@CacheEvict(cacheNames = {RESOURCE_CACHE}, allEntries = true)
 	public R save(@Valid @RequestBody Oss oss) {
-		CacheUtil.evict(SYS_CACHE, OssBuilder.OSS_CODE, SecureUtil.getTenantId());
 		return R.status(ossService.save(oss));
 	}
 
@@ -110,8 +108,8 @@ public class OssController extends BladeController {
 	@PostMapping("/update")
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入oss")
+	@CacheEvict(cacheNames = {RESOURCE_CACHE}, allEntries = true)
 	public R update(@Valid @RequestBody Oss oss) {
-		CacheUtil.evict(SYS_CACHE, OssBuilder.OSS_CODE, SecureUtil.getTenantId());
 		return R.status(ossService.updateById(oss));
 	}
 
@@ -121,9 +119,9 @@ public class OssController extends BladeController {
 	@PostMapping("/submit")
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入oss")
+	@CacheEvict(cacheNames = {RESOURCE_CACHE}, allEntries = true)
 	public R submit(@Valid @RequestBody Oss oss) {
-		CacheUtil.evict(SYS_CACHE, OssBuilder.OSS_CODE, SecureUtil.getTenantId());
-		return R.status(ossService.saveOrUpdate(oss));
+		return R.status(ossService.submit(oss));
 	}
 
 
@@ -133,8 +131,8 @@ public class OssController extends BladeController {
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	@CacheEvict(cacheNames = {RESOURCE_CACHE}, allEntries = true)
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		CacheUtil.evict(SYS_CACHE, OssBuilder.OSS_CODE, SecureUtil.getTenantId());
 		return R.status(ossService.deleteLogic(Func.toLongList(ids)));
 	}
 
@@ -145,8 +143,8 @@ public class OssController extends BladeController {
 	@PostMapping("/enable")
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "配置启用", notes = "传入id")
+	@CacheEvict(cacheNames = {RESOURCE_CACHE}, allEntries = true)
 	public R enable(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
-		CacheUtil.evict(SYS_CACHE, OssBuilder.OSS_CODE, SecureUtil.getTenantId());
 		return R.status(ossService.enable(id));
 	}
 

+ 6 - 0
src/main/java/org/springblade/modules/resource/entity/Oss.java

@@ -43,6 +43,12 @@ public class Oss extends TenantEntity {
 	@ApiModelProperty(value = "所属分类")
 	private Integer category;
 
+	/**
+	 * 资源编号
+	 */
+	@ApiModelProperty(value = "资源编号")
+	private String ossCode;
+
 	/**
 	 * oss地址
 	 */

+ 4 - 0
src/main/java/org/springblade/modules/resource/mapper/OssMapper.xml

@@ -11,10 +11,14 @@
         <result column="update_time" property="updateTime"/>
         <result column="status" property="status"/>
         <result column="is_deleted" property="isDeleted"/>
+        <result column="oss_code" property="ossCode"/>
+        <result column="category" property="category"/>
         <result column="endpoint" property="endpoint"/>
         <result column="access_key" property="accessKey"/>
         <result column="secret_key" property="secretKey"/>
         <result column="bucket_name" property="bucketName"/>
+        <result column="app_id" property="appId"/>
+        <result column="region" property="region"/>
         <result column="remark" property="remark"/>
     </resultMap>
 

+ 8 - 0
src/main/java/org/springblade/modules/resource/service/IOssService.java

@@ -38,6 +38,14 @@ public interface IOssService extends BaseService<Oss> {
 	 */
 	IPage<OssVO> selectOssPage(IPage<OssVO> page, OssVO oss);
 
+	/**
+	 * 提交oss信息
+	 *
+	 * @param oss
+	 * @return
+	 */
+	boolean submit(Oss oss);
+
 	/**
 	 * 启动配置
 	 *

+ 13 - 0
src/main/java/org/springblade/modules/resource/service/impl/OssServiceImpl.java

@@ -16,9 +16,12 @@
  */
 package org.springblade.modules.resource.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.resource.entity.Oss;
 import org.springblade.modules.resource.entity.OssVO;
 import org.springblade.modules.resource.mapper.OssMapper;
@@ -40,6 +43,16 @@ public class OssServiceImpl extends BaseServiceImpl<OssMapper, Oss> implements I
 		return page.setRecords(baseMapper.selectOssPage(page, oss));
 	}
 
+	@Override
+	public boolean submit(Oss oss) {
+		LambdaQueryWrapper<Oss> lqw = Wrappers.<Oss>query().lambda().eq(Oss::getOssCode, oss.getOssCode());
+		Integer cnt = baseMapper.selectCount(Func.isEmpty(oss.getId()) ? lqw : lqw.notIn(Oss::getId, oss.getId()));
+		if (cnt > 0) {
+			throw new ServiceException("当前资源编号已存在!");
+		}
+		return this.saveOrUpdate(oss);
+	}
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean enable(Long id) {