فهرست منبع

Merge branch 'dev' of https://gitee.com/Bleachtred/RuoYi-Cloud-Plus into dev

bleachtred 3 سال پیش
والد
کامیت
9c0cc53e7f
100فایلهای تغییر یافته به همراه281 افزوده شده و 74 حذف شده
  1. 16 16
      config/dev/datasource.yml
  2. 2 0
      config/dev/ruoyi-gen.yml
  3. 1 0
      config/dev/ruoyi-job.yml
  4. 1 6
      config/dev/ruoyi-resource.yml
  5. 2 0
      config/dev/ruoyi-system.yml
  6. 12 1
      config/dev/seata-server.properties
  7. 14 0
      docker/skywalking/README.md
  8. BIN
      docker/skywalking/agent/optional-plugins/apm-ehcache-2.x-plugin-8.12.0.jar
  9. BIN
      docker/skywalking/agent/optional-plugins/apm-fastjson-1.x-plugin-8.12.0.jar
  10. BIN
      docker/skywalking/agent/optional-plugins/apm-gson-2.x-plugin-8.12.0.jar
  11. BIN
      docker/skywalking/agent/optional-plugins/apm-jackson-2.x-plugin-8.12.0.jar
  12. BIN
      docker/skywalking/agent/optional-plugins/apm-quartz-scheduler-2.x-plugin-8.12.0.jar
  13. BIN
      docker/skywalking/agent/optional-plugins/apm-shenyu-2.4.x-plugin-8.12.0.jar
  14. BIN
      docker/skywalking/agent/optional-plugins/trace-sampler-cpu-policy-plugin-8.12.0.jar
  15. BIN
      docker/skywalking/agent/optional-reporter-plugins/kafka-reporter-plugin-8.12.0.jar
  16. BIN
      docker/skywalking/agent/optional-reporter-plugins/lz4-java-1.6.0.jar
  17. BIN
      docker/skywalking/agent/optional-reporter-plugins/snappy-java-1.1.7.3.jar
  18. BIN
      docker/skywalking/agent/optional-reporter-plugins/zstd-jni-1.4.3-1.jar
  19. BIN
      docker/skywalking/agent/plugins/apm-activemq-5.x-plugin-8.12.0.jar
  20. BIN
      docker/skywalking/agent/plugins/apm-armeria-0.84.x-plugin-8.12.0.jar
  21. BIN
      docker/skywalking/agent/plugins/apm-armeria-0.85.x-plugin-8.12.0.jar
  22. BIN
      docker/skywalking/agent/plugins/apm-asynchttpclient-2.x-plugin-8.12.0.jar
  23. BIN
      docker/skywalking/agent/plugins/apm-avro-plugin-8.12.0.jar
  24. BIN
      docker/skywalking/agent/plugins/apm-cassandra-java-driver-3.x-plugin-8.12.0.jar
  25. BIN
      docker/skywalking/agent/plugins/apm-clickhouse-0.3.x-plugin-8.12.0.jar
  26. 0 0
      docker/skywalking/agent/plugins/apm-customize-enhance-plugin-8.12.0.jar
  27. BIN
      docker/skywalking/agent/plugins/apm-cxf-3.x-plugin-8.12.0.jar
  28. BIN
      docker/skywalking/agent/plugins/apm-elastic-job-2.x-plugin-8.12.0.jar
  29. BIN
      docker/skywalking/agent/plugins/apm-elasticjob-3.x-plugin-8.12.0.jar
  30. BIN
      docker/skywalking/agent/plugins/apm-elasticsearch-5.x-plugin-8.12.0.jar
  31. BIN
      docker/skywalking/agent/plugins/apm-finagle-6.25.x-plugin-8.12.0.jar
  32. 0 0
      docker/skywalking/agent/plugins/apm-guava-cache-plugin-8.12.0.jar
  33. BIN
      docker/skywalking/agent/plugins/apm-hbase-1.x-2.x-plugin-8.12.0.jar
  34. BIN
      docker/skywalking/agent/plugins/apm-hystrix-1.x-plugin-8.12.0.jar
  35. 0 0
      docker/skywalking/agent/plugins/apm-jdk-http-plugin-8.12.0.jar
  36. 0 0
      docker/skywalking/agent/plugins/apm-jdk-threading-plugin-8.12.0.jar
  37. 0 0
      docker/skywalking/agent/plugins/apm-jdk-threadpool-plugin-8.12.0.jar
  38. BIN
      docker/skywalking/agent/plugins/apm-jetty-client-9.0-plugin-8.12.0.jar
  39. BIN
      docker/skywalking/agent/plugins/apm-jetty-client-9.x-plugin-8.12.0.jar
  40. BIN
      docker/skywalking/agent/plugins/apm-jetty-server-9.x-plugin-8.12.0.jar
  41. 0 0
      docker/skywalking/agent/plugins/apm-kotlin-coroutine-plugin-8.12.0.jar
  42. BIN
      docker/skywalking/agent/plugins/apm-kylin-jdbc-2.6.x-3.x-4.x-plugin-8.12.0.jar
  43. BIN
      docker/skywalking/agent/plugins/apm-lettuce-5.x-plugin-8.12.0.jar
  44. BIN
      docker/skywalking/agent/plugins/apm-light4j-plugin-8.12.0.jar
  45. BIN
      docker/skywalking/agent/plugins/apm-mongodb-2.x-plugin-8.12.0.jar
  46. 0 0
      docker/skywalking/agent/plugins/apm-mybatis-3.x-plugin-8.12.0.jar
  47. BIN
      docker/skywalking/agent/plugins/apm-mysql-6.x-plugin-8.12.0.jar
  48. BIN
      docker/skywalking/agent/plugins/apm-neo4j-4.x-plugin-8.12.0.jar
  49. BIN
      docker/skywalking/agent/plugins/apm-nutz-http-1.x-plugin-8.12.0.jar
  50. BIN
      docker/skywalking/agent/plugins/apm-nutz-mvc-annotation-1.x-plugin-8.12.0.jar
  51. BIN
      docker/skywalking/agent/plugins/apm-play-2.x-plugin-8.12.0.jar
  52. 0 0
      docker/skywalking/agent/plugins/apm-sentinel-1.x-plugin-8.12.0.jar
  53. BIN
      docker/skywalking/agent/plugins/apm-servicecomb-java-chassis-2.x-plugin-8.12.0.jar
  54. BIN
      docker/skywalking/agent/plugins/apm-sharding-sphere-3.x-plugin-8.12.0.jar
  55. BIN
      docker/skywalking/agent/plugins/apm-solrj-7.x-plugin-8.12.0.jar
  56. 0 0
      docker/skywalking/agent/plugins/apm-spring-annotation-plugin-8.12.0.jar
  57. 0 0
      docker/skywalking/agent/plugins/apm-spring-cloud-gateway-2.0.x-plugin-8.12.0.jar
  58. 0 0
      docker/skywalking/agent/plugins/apm-spring-cloud-gateway-2.1.x-plugin-8.12.0.jar
  59. 0 0
      docker/skywalking/agent/plugins/apm-spring-cloud-gateway-3.x-plugin-8.12.0.jar
  60. 0 0
      docker/skywalking/agent/plugins/apm-spring-tx-plugin-8.12.0.jar
  61. 0 0
      docker/skywalking/agent/plugins/apm-spring-webflux-5.x-plugin-8.12.0.jar
  62. BIN
      docker/skywalking/agent/plugins/apm-spymemcached-2.x-plugin-8.12.0.jar
  63. BIN
      docker/skywalking/agent/plugins/apm-struts2-2.x-plugin-8.12.0.jar
  64. 0 0
      docker/skywalking/agent/plugins/apm-trace-ignore-plugin-8.12.0.jar
  65. BIN
      docker/skywalking/agent/plugins/apm-vertx-core-3.x-plugin-8.12.0.jar
  66. BIN
      docker/skywalking/agent/plugins/apm-vertx-core-4.x-plugin-8.12.0.jar
  67. BIN
      docker/skywalking/agent/plugins/apm-xmemcached-2.x-plugin-8.12.0.jar
  68. 0 0
      docker/skywalking/agent/plugins/apm-zookeeper-3.4.x-plugin-8.12.0.jar
  69. BIN
      docker/skywalking/agent/plugins/baidu-brpc-plugin-8.12.0.jar
  70. BIN
      docker/skywalking/agent/plugins/dbcp-2.x-plugin-8.12.0.jar
  71. BIN
      docker/skywalking/agent/plugins/jedis-2.x-3.x-plugin-8.12.0.jar
  72. BIN
      docker/skywalking/agent/plugins/jedis-4.x-plugin-8.12.0.jar
  73. BIN
      docker/skywalking/agent/plugins/jsonrpc4j-1.x-plugin-8.12.0.jar
  74. BIN
      docker/skywalking/agent/plugins/micronaut-http-client-plugin-8.12.0.jar
  75. BIN
      docker/skywalking/agent/plugins/micronaut-http-server-plugin-8.12.0.jar
  76. BIN
      docker/skywalking/agent/plugins/motan-plugin-8.12.0.jar
  77. BIN
      docker/skywalking/agent/plugins/nats-2.14.x-2.15.x-plugin-8.12.0.jar
  78. BIN
      docker/skywalking/agent/plugins/okhttp-2.x-plugin-8.12.0.jar
  79. BIN
      docker/skywalking/agent/plugins/resteasy-server-3.x-plugin-8.12.0.jar
  80. BIN
      docker/skywalking/agent/plugins/resteasy-server-4.x-plugin-8.12.0.jar
  81. BIN
      docker/skywalking/agent/plugins/sofa-rpc-plugin-8.12.0.jar
  82. 0 1
      pom.xml
  83. 3 3
      ruoyi-common/ruoyi-common-dubbo/src/main/java/cn/dev33/satoken/context/dubbo/filter/SaTokenDubboConsumerFilter.java
  84. 8 4
      ruoyi-common/ruoyi-common-dubbo/src/main/java/cn/dev33/satoken/context/dubbo/filter/SaTokenDubboProviderFilter.java
  85. 0 7
      ruoyi-common/ruoyi-common-mybatis/pom.xml
  86. 35 5
      ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/core/OssClient.java
  87. 55 0
      ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/enumd/AccessPolicyType.java
  88. 6 0
      ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/properties/OssProperties.java
  89. 2 0
      ruoyi-modules/ruoyi-gen/src/main/resources/spy.properties
  90. 0 1
      ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SampleService.java
  91. 28 0
      ruoyi-modules/ruoyi-job/src/main/resources/spy.properties
  92. 2 23
      ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/controller/SysOssController.java
  93. 4 0
      ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/domain/SysOssConfig.java
  94. 7 0
      ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/domain/bo/SysOssConfigBo.java
  95. 6 0
      ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/domain/vo/SysOssConfigVo.java
  96. 5 2
      ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/service/ISysOssService.java
  97. 50 5
      ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/service/impl/SysOssServiceImpl.java
  98. 2 0
      ruoyi-modules/ruoyi-resource/src/main/resources/spy.properties
  99. 2 0
      ruoyi-modules/ruoyi-system/src/main/resources/spy.properties
  100. 18 0
      ruoyi-ui/src/views/system/oss/config.vue

+ 16 - 16
config/dev/datasource.yml

@@ -16,7 +16,7 @@ datasource:
 
 spring:
   datasource:
-    type: com.alibaba.druid.pool.DruidDataSource
+    type: com.zaxxer.hikari.HikariDataSource
     # 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content
     dynamic:
       # 性能分析插件(有性能损耗 不建议生产环境使用)
@@ -25,21 +25,21 @@ spring:
       seata: true
       # 严格模式 匹配不到数据源则报错
       strict: true
-      druid:
-        initial-size: 5
-        min-idle: 5
-        maxActive: 20
-        maxWait: 60000
-        timeBetweenEvictionRunsMillis: 60000
-        minEvictableIdleTimeMillis: 300000
-        validationQuery: SELECT 1 FROM DUAL
-        testWhileIdle: true
-        testOnBorrow: false
-        testOnReturn: false
-        poolPreparedStatements: true
-        maxPoolPreparedStatementPerConnectionSize: 20
-        filters: stat,slf4j
-        connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+      hikari:
+        # 最大连接池数量
+        maxPoolSize: 20
+        # 最小空闲线程数量
+        minIdle: 10
+        # 配置获取连接等待超时的时间
+        connectionTimeout: 10000
+        # 校验超时时间
+        validationTimeout: 5000
+        # 空闲连接存活最大时间,默认10分钟
+        idleTimeout: 60000
+        # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
+        maxLifetime: 900000
+        # 连接测试query(配置检测连接是否有效)
+        connectionTestQuery: SELECT 1
 
 # seata配置
 seata:

+ 2 - 0
config/dev/ruoyi-gen.yml

@@ -6,6 +6,7 @@ spring:
       datasource:
         # 主库数据源
         master:
+          type: ${spring.datasource.type}
           driver-class-name: com.mysql.cj.jdbc.Driver
           url: ${datasource.system-master.url}
           username: ${datasource.system-master.username}
@@ -13,6 +14,7 @@ spring:
         # 从库数据源
         #slave:
         #  lazy: true
+        #  type: ${spring.datasource.type}
         #  driver-class-name:
         #  url:
         #  username:

+ 1 - 0
config/dev/ruoyi-job.yml

@@ -6,6 +6,7 @@ spring:
       datasource:
         # 主库数据源
         master:
+          type: ${spring.datasource.type}
           driver-class-name: com.mysql.cj.jdbc.Driver
           url: ${datasource.job.url}
           username: ${datasource.job.username}

+ 1 - 6
config/dev/ruoyi-resource.yml

@@ -6,16 +6,11 @@ spring:
       datasource:
         # 主库数据源
         master:
+          type: ${spring.datasource.type}
           driver-class-name: com.mysql.cj.jdbc.Driver
           url: ${datasource.system-master.url}
           username: ${datasource.system-master.username}
           password: ${datasource.system-master.password}
-        # 从库数据源
-        # slave:
-        #  driver-class-name:
-        #  url:
-        #  username:
-        #  password:
 
 mail:
   enabled: false

+ 2 - 0
config/dev/ruoyi-system.yml

@@ -6,12 +6,14 @@ spring:
       datasource:
         # 主库数据源
         master:
+          type: ${spring.datasource.type}
           driver-class-name: com.mysql.cj.jdbc.Driver
           url: ${datasource.system-master.url}
           username: ${datasource.system-master.username}
           password: ${datasource.system-master.password}
         # 从库数据源
         # slave:
+        #  type: ${spring.datasource.type}
         #  driver-class-name:
         #  url:
         #  username:

+ 12 - 1
config/dev/seata-server.properties

@@ -15,7 +15,7 @@ store.session.mode=db
 store.publicKey=
 
 #These configurations are required if the `store mode` is `db`. If `store.mode,store.lock.mode,store.session.mode` are not equal to `db`, you can remove the configuration block.
-store.db.datasource=druid
+store.db.datasource=hikari
 store.db.dbType=mysql
 store.db.driverClassName=com.mysql.cj.jdbc.Driver
 store.db.url=jdbc:mysql://127.0.0.1:3306/ry-seata?useUnicode=true&rewriteBatchedStatements=true
@@ -30,6 +30,17 @@ store.db.queryLimit=100
 store.db.lockTable=lock_table
 store.db.maxWait=5000
 
+# redis 模式 store.mode=redis 开启 (控制台查询功能有限,不影响实际执行功能)
+# store.redis.host=127.0.0.1
+# store.redis.port=6379
+# 最大连接数
+# store.redis.maxConn=10
+# 最小连接数
+# store.redis.minConn=1
+# store.redis.database=0
+# store.redis.password=
+# store.redis.queryLimit=100
+
 #Transaction rule configuration, only for the server
 server.recovery.committingRetryPeriod=1000
 server.recovery.asynCommittingRetryPeriod=1000

+ 14 - 0
docker/skywalking/README.md

@@ -0,0 +1,14 @@
+# 说明
+项目使用 `skywalking` 官方 `agent` 探针做了精简和扩充
+<br>
+从官方自带的插件库 删除了项目中大概率不会用到的插件
+<br>
+保留了项目中可能会用到的插件
+<br>
+扩展了一些官方不支持的插件
+<br>
+插件过多会导致很严重的性能问题 建议不要用过多插件
+# 扩展
+项目开发中遇到一些插件包内没有的功能可以去 `skywalking` 官方下载
+<br>
+将下载好的插件放入 `plugins` 目录下即可

BIN
docker/skywalking/agent/optional-plugins/apm-ehcache-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/optional-plugins/apm-fastjson-1.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/optional-plugins/apm-gson-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/optional-plugins/apm-jackson-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/optional-plugins/apm-quartz-scheduler-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/optional-plugins/apm-shenyu-2.4.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/optional-plugins/trace-sampler-cpu-policy-plugin-8.12.0.jar


BIN
docker/skywalking/agent/optional-reporter-plugins/kafka-reporter-plugin-8.12.0.jar


BIN
docker/skywalking/agent/optional-reporter-plugins/lz4-java-1.6.0.jar


BIN
docker/skywalking/agent/optional-reporter-plugins/snappy-java-1.1.7.3.jar


BIN
docker/skywalking/agent/optional-reporter-plugins/zstd-jni-1.4.3-1.jar


BIN
docker/skywalking/agent/plugins/apm-activemq-5.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-armeria-0.84.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-armeria-0.85.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-asynchttpclient-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-avro-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-cassandra-java-driver-3.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-clickhouse-0.3.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-customize-enhance-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-customize-enhance-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-cxf-3.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-elastic-job-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-elasticjob-3.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-elasticsearch-5.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-finagle-6.25.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-guava-cache-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-guava-cache-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-hbase-1.x-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-hystrix-1.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/bootstrap-plugins/apm-jdk-http-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-jdk-http-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/bootstrap-plugins/apm-jdk-threading-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-jdk-threading-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/bootstrap-plugins/apm-jdk-threadpool-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-jdk-threadpool-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-jetty-client-9.0-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-jetty-client-9.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-jetty-server-9.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-kotlin-coroutine-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-kotlin-coroutine-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-kylin-jdbc-2.6.x-3.x-4.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-lettuce-5.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-light4j-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-mongodb-2.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-mybatis-3.x-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-mybatis-3.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-mysql-6.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-neo4j-4.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-nutz-http-1.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-nutz-mvc-annotation-1.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-play-2.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-sentinel-1.x-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-sentinel-1.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-servicecomb-java-chassis-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-sharding-sphere-3.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-solrj-7.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-spring-annotation-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-spring-annotation-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-spring-cloud-gateway-2.0.x-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-spring-cloud-gateway-2.0.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-spring-cloud-gateway-2.1.x-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-spring-cloud-gateway-2.1.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-spring-cloud-gateway-3.x-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-spring-cloud-gateway-3.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-spring-tx-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-spring-tx-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-spring-webflux-5.x-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-spring-webflux-5.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-spymemcached-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-struts2-2.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-trace-ignore-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-trace-ignore-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-vertx-core-3.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-vertx-core-4.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/apm-xmemcached-2.x-plugin-8.12.0.jar


+ 0 - 0
docker/skywalking/agent/optional-plugins/apm-zookeeper-3.4.x-plugin-8.12.0.jar → docker/skywalking/agent/plugins/apm-zookeeper-3.4.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/baidu-brpc-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/dbcp-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/jedis-2.x-3.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/jedis-4.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/jsonrpc4j-1.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/micronaut-http-client-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/micronaut-http-server-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/motan-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/nats-2.14.x-2.15.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/okhttp-2.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/resteasy-server-3.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/resteasy-server-4.x-plugin-8.12.0.jar


BIN
docker/skywalking/agent/plugins/sofa-rpc-plugin-8.12.0.jar


+ 0 - 1
pom.xml

@@ -24,7 +24,6 @@
         <mybatis.version>3.5.10</mybatis.version>
         <mybatis-plus.version>3.5.2</mybatis-plus.version>
         <p6spy.version>3.9.1</p6spy.version>
-        <druid.version>1.2.12</druid.version>
         <dynamic-ds.version>3.5.2</dynamic-ds.version>
         <velocity.version>2.3</velocity.version>
         <fastjson.version>1.2.83</fastjson.version>

+ 3 - 3
ruoyi-common/ruoyi-common-dubbo/src/main/java/cn/dev33/satoken/context/dubbo/filter/SaTokenDubboConsumerFilter.java

@@ -2,7 +2,7 @@ package cn.dev33.satoken.context.dubbo.filter;
 
 import cn.dev33.satoken.SaManager;
 import cn.dev33.satoken.context.SaTokenContextDefaultImpl;
-import cn.dev33.satoken.id.SaIdUtil;
+import cn.dev33.satoken.same.SaSameUtil;
 import cn.dev33.satoken.spring.SaBeanInject;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.dev33.satoken.util.SaTokenConsts;
@@ -29,8 +29,8 @@ public class SaTokenDubboConsumerFilter implements Filter {
         SpringUtils.getBean(SaBeanInject.class);
 
         // 追加 Id-Token 参数
-		if(SaManager.getConfig().getCheckIdToken()) {
-            RpcContext.getServiceContext().setAttachment(SaIdUtil.ID_TOKEN, SaIdUtil.getToken());
+		if(SaManager.getConfig().getCheckSameToken()) {
+            RpcContext.getServiceContext().setAttachment(SaSameUtil.SAME_TOKEN, SaSameUtil.getToken());
 		}
 
 		// 1. 调用前,向下传递会话Token

+ 8 - 4
ruoyi-common/ruoyi-common-dubbo/src/main/java/cn/dev33/satoken/context/dubbo/filter/SaTokenDubboProviderFilter.java

@@ -1,7 +1,7 @@
 package cn.dev33.satoken.context.dubbo.filter;
 
 import cn.dev33.satoken.SaManager;
-import cn.dev33.satoken.id.SaIdUtil;
+import cn.dev33.satoken.same.SaSameUtil;
 import cn.dev33.satoken.spring.SaBeanInject;
 import com.ruoyi.common.core.utils.SpringUtils;
 import org.apache.dubbo.common.constants.CommonConstants;
@@ -26,9 +26,13 @@ public class SaTokenDubboProviderFilter implements Filter {
         SpringUtils.getBean(SaBeanInject.class);
 
         // RPC 调用鉴权
-		if(SaManager.getConfig().getCheckIdToken()) {
-			String idToken = invocation.getAttachment(SaIdUtil.ID_TOKEN);
-            SaIdUtil.checkToken(idToken);
+		if(SaManager.getConfig().getCheckSameToken()) {
+			String idToken = invocation.getAttachment(SaSameUtil.SAME_TOKEN);
+            // dubbo部分协议会将参数变为小写,详细参考:https://gitee.com/dromara/sa-token/issues/I4WXQG
+            if(idToken == null) {
+                idToken = invocation.getAttachment(SaSameUtil.SAME_TOKEN.toLowerCase());
+            }
+            SaSameUtil.checkToken(idToken);
 		}
 
 		// 开始调用

+ 0 - 7
ruoyi-common/ruoyi-common-mybatis/pom.xml

@@ -38,13 +38,6 @@
             <artifactId>p6spy</artifactId>
         </dependency>
 
-        <!-- Druid -->
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>druid-spring-boot-starter</artifactId>
-            <version>${druid.version}</version>
-        </dependency>
-
         <!-- Dynamic DataSource -->
         <dependency>
             <groupId>com.baomidou</groupId>

+ 35 - 5
ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/core/OssClient.java

@@ -2,6 +2,7 @@ package com.ruoyi.common.oss.core;
 
 import cn.hutool.core.util.IdUtil;
 import com.amazonaws.ClientConfiguration;
+import com.amazonaws.HttpMethod;
 import com.amazonaws.Protocol;
 import com.amazonaws.auth.AWSCredentials;
 import com.amazonaws.auth.AWSCredentialsProvider;
@@ -16,13 +17,15 @@ import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.oss.constant.OssConstant;
 import com.ruoyi.common.oss.entity.UploadResult;
+import com.ruoyi.common.oss.enumd.AccessPolicyType;
 import com.ruoyi.common.oss.enumd.PolicyType;
 import com.ruoyi.common.oss.exception.OssException;
 import com.ruoyi.common.oss.properties.OssProperties;
 
-
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.net.URL;
+import java.util.Date;
 
 /**
  * S3 存储协议 所有兼容S3协议的云厂商均支持
@@ -80,9 +83,10 @@ public class OssClient {
                 return;
             }
             CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
-            createBucketRequest.setCannedAcl(CannedAccessControlList.PublicRead);
+            AccessPolicyType accessPolicy = getAccessPolicy();
+            createBucketRequest.setCannedAcl(accessPolicy.getAcl());
             client.createBucket(createBucketRequest);
-            client.setBucketPolicy(bucketName, getPolicy(bucketName, PolicyType.READ));
+            client.setBucketPolicy(bucketName, getPolicy(bucketName, accessPolicy.getPolicyType()));
         } catch (Exception e) {
             throw new OssException("创建Bucket失败, 请核对配置信息:[" + e.getMessage() + "]");
         }
@@ -99,7 +103,7 @@ public class OssClient {
             metadata.setContentLength(inputStream.available());
             PutObjectRequest putObjectRequest = new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata);
             // 设置上传对象的 Acl 为公共读
-            putObjectRequest.setCannedAcl(CannedAccessControlList.PublicRead);
+            putObjectRequest.setCannedAcl(getAccessPolicy().getAcl());
             client.putObject(putObjectRequest);
         } catch (Exception e) {
             throw new OssException("上传文件失败,请检查配置信息:[" + e.getMessage() + "]");
@@ -112,7 +116,7 @@ public class OssClient {
         try {
             client.deleteObject(properties.getBucketName(), path);
         } catch (Exception e) {
-            throw new OssException("上传文件失败,请检查配置信息:[" + e.getMessage() + "]");
+            throw new OssException("删除文件失败,请检查配置信息:[" + e.getMessage() + "]");
         }
     }
 
@@ -130,10 +134,17 @@ public class OssClient {
      * @param path 完整文件路径
      */
     public ObjectMetadata getObjectMetadata(String path) {
+        path = path.replace(getUrl() + "/", "");
         S3Object object = client.getObject(properties.getBucketName(), path);
         return object.getObjectMetadata();
     }
 
+    public InputStream getObjectContent(String path) {
+        path = path.replace(getUrl() + "/", "");
+        S3Object object = client.getObject(properties.getBucketName(), path);
+        return object.getObjectContent();
+    }
+
     public String getUrl() {
         String domain = properties.getDomain();
         String endpoint = properties.getEndpoint();
@@ -168,6 +179,25 @@ public class OssClient {
         return configKey;
     }
 
+    public String getPrivateUrl(String objectKey, Integer second) {
+        GeneratePresignedUrlRequest generatePresignedUrlRequest =
+            new GeneratePresignedUrlRequest(properties.getBucketName(), objectKey)
+                .withMethod(HttpMethod.GET)
+                .withExpiration(new Date(System.currentTimeMillis() + 1000L * second));
+        URL url = client.generatePresignedUrl(generatePresignedUrlRequest);
+        return url.toString();
+    }
+
+    /**
+     * 获取当前桶权限类型
+     *
+     * @return 当前桶权限类型code
+     */
+    public AccessPolicyType getAccessPolicy() {
+        return AccessPolicyType.getByType(properties.getAccessPolicy());
+    }
+
+
     private static String getPolicy(String bucketName, PolicyType policyType) {
         StringBuilder builder = new StringBuilder();
         builder.append("{\n\"Statement\": [\n{\n\"Action\": [\n");

+ 55 - 0
ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/enumd/AccessPolicyType.java

@@ -0,0 +1,55 @@
+package com.ruoyi.common.oss.enumd;
+
+import com.amazonaws.services.s3.model.CannedAccessControlList;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 桶访问策略配置
+ *
+ * @author 陈賝
+ */
+@Getter
+@AllArgsConstructor
+public enum AccessPolicyType {
+
+    /**
+     * private
+     */
+    PRIVATE("0", CannedAccessControlList.Private, PolicyType.WRITE),
+
+    /**
+     * public
+     */
+    PUBLIC("1", CannedAccessControlList.PublicRead, PolicyType.READ),
+
+    /**
+     * custom
+     */
+    CUSTOM("2",CannedAccessControlList.PublicRead, PolicyType.READ);
+
+    /**
+     * 桶 权限类型
+     */
+    private final String type;
+
+    /**
+     * 文件对象 权限类型
+     */
+    private final CannedAccessControlList acl;
+
+    /**
+     * 桶策略类型
+     */
+    private final PolicyType policyType;
+
+    public static AccessPolicyType getByType(String type) {
+        for (AccessPolicyType value : values()) {
+            if (value.getType().equals(type)) {
+                return value;
+            }
+        }
+        throw new RuntimeException("'type' not found By " + type);
+    }
+
+}

+ 6 - 0
ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/properties/OssProperties.java

@@ -50,4 +50,10 @@ public class OssProperties {
      */
     private String isHttps;
 
+    /**
+     * 桶权限类型(0private 1public 2custom)
+     */
+    private String accessPolicy;
+
+
 }

+ 2 - 0
ruoyi-modules/ruoyi-gen/src/main/resources/spy.properties

@@ -24,3 +24,5 @@ outagedetection=true
 outagedetectioninterval=2
 # 是否过滤 Log
 filter=true
+# 过滤 Log 时所排除的 sql 关键字,以逗号分隔
+exclude=SELECT 1

+ 0 - 1
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SampleService.java

@@ -39,7 +39,6 @@ public class SampleService {
 
         for (int i = 0; i < 5; i++) {
             XxlJobHelper.log("beat at:" + i);
-            TimeUnit.SECONDS.sleep(2);
         }
         // default success
     }

+ 28 - 0
ruoyi-modules/ruoyi-job/src/main/resources/spy.properties

@@ -0,0 +1,28 @@
+# p6spy 性能分析插件配置文件
+modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
+# 自定义日志打印
+logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
+#日志输出到控制台
+appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
+# 使用日志系统记录 sql
+#appender=com.p6spy.engine.spy.appender.Slf4JLogger
+# 设置 p6spy driver 代理
+#deregisterdrivers=true
+# 取消JDBC URL前缀
+useprefix=true
+# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
+excludecategories=info,debug,result,commit,resultset
+# 日期格式
+dateformat=yyyy-MM-dd HH:mm:ss
+# SQL语句打印时间格式
+databaseDialectTimestampFormat=yyyy-MM-dd HH:mm:ss
+# 实际驱动可多个
+#driverlist=org.h2.Driver
+# 是否开启慢SQL记录
+outagedetection=true
+# 慢SQL记录标准 2 秒
+outagedetectioninterval=2
+# 是否过滤 Log
+filter=true
+# 过滤 Log 时所排除的 sql 关键字,以逗号分隔
+exclude=SELECT 1

+ 2 - 23
ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/controller/SysOssController.java

@@ -2,20 +2,15 @@ package com.ruoyi.resource.controller;
 
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
-import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.http.HttpException;
-import cn.hutool.http.HttpUtil;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
-import com.ruoyi.common.core.utils.file.FileUtils;
 import com.ruoyi.common.core.validate.QueryGroup;
 import com.ruoyi.common.core.web.controller.BaseController;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
-import com.ruoyi.resource.domain.SysOss;
 import com.ruoyi.resource.domain.bo.SysOssBo;
 import com.ruoyi.resource.domain.vo.SysOssVo;
 import com.ruoyi.resource.service.ISysOssService;
@@ -79,7 +74,7 @@ public class SysOssController extends BaseController {
         if (ObjectUtil.isNull(file)) {
             throw new ServiceException("上传文件不能为空");
         }
-        SysOss oss = iSysOssService.upload(file);
+        SysOssVo oss = iSysOssService.upload(file);
         Map<String, String> map = new HashMap<>(2);
         map.put("url", oss.getUrl());
         map.put("fileName", oss.getOriginalName());
@@ -95,23 +90,7 @@ public class SysOssController extends BaseController {
     @SaCheckPermission("system:oss:download")
     @GetMapping("/download/{ossId}")
     public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException {
-        SysOssVo sysOss = iSysOssService.getById(ossId);
-        if (ObjectUtil.isNull(sysOss)) {
-            throw new ServiceException("文件数据不存在!");
-        }
-        FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName());
-        response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8");
-        long data;
-        try {
-            data = HttpUtil.download(sysOss.getUrl(), response.getOutputStream(), false);
-        } catch (HttpException e) {
-            if (e.getMessage().contains("403")) {
-                throw new ServiceException("无读取权限, 请在对应的OSS开启'公有读'权限!");
-            } else {
-                throw new ServiceException(e.getMessage());
-            }
-        }
-        response.setContentLength(Convert.toInt(data));
+        iSysOssService.download(ossId, response);
     }
 
     /**

+ 4 - 0
ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/domain/SysOssConfig.java

@@ -83,4 +83,8 @@ public class SysOssConfig extends BaseEntity {
      */
     private String remark;
 
+    /**
+     * 桶权限类型(0private 1public 2custom)
+     */
+    private String accessPolicy;
 }

+ 7 - 0
ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/domain/bo/SysOssConfigBo.java

@@ -98,4 +98,11 @@ public class SysOssConfigBo extends BaseEntity {
      */
     private String remark;
 
+    /**
+     * 桶权限类型(0private 1public 2custom)
+     */
+    @NotBlank(message = "桶权限类型不能为空", groups = {AddGroup.class, EditGroup.class})
+    private String accessPolicy;
+
+
 }

+ 6 - 0
ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/domain/vo/SysOssConfigVo.java

@@ -80,4 +80,10 @@ public class SysOssConfigVo {
      */
     private String remark;
 
+    /**
+     * 桶权限类型(0private 1public 2custom)
+     */
+    private String accessPolicy;
+
+
 }

+ 5 - 2
ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/service/ISysOssService.java

@@ -2,11 +2,12 @@ package com.ruoyi.resource.service;
 
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
-import com.ruoyi.resource.domain.SysOss;
 import com.ruoyi.resource.domain.bo.SysOssBo;
 import com.ruoyi.resource.domain.vo.SysOssVo;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.Collection;
 import java.util.List;
 
@@ -23,7 +24,9 @@ public interface ISysOssService {
 
     SysOssVo getById(Long ossId);
 
-    SysOss upload(MultipartFile file);
+    SysOssVo upload(MultipartFile file);
+
+    void download(Long ossId, HttpServletResponse response) throws IOException;
 
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 

+ 50 - 5
ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/service/impl/SysOssServiceImpl.java

@@ -1,17 +1,21 @@
 package com.ruoyi.resource.service.impl;
 
+import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.constant.CacheNames;
 import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.BeanCopyUtils;
 import com.ruoyi.common.core.utils.SpringUtils;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.file.FileUtils;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.oss.core.OssClient;
 import com.ruoyi.common.oss.entity.UploadResult;
+import com.ruoyi.common.oss.enumd.AccessPolicyType;
 import com.ruoyi.common.oss.factory.OssFactory;
 import com.ruoyi.resource.domain.SysOss;
 import com.ruoyi.resource.domain.bo.SysOssBo;
@@ -20,14 +24,18 @@ import com.ruoyi.resource.mapper.SysOssMapper;
 import com.ruoyi.resource.service.ISysOssService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.cache.annotation.Cacheable;
+import org.springframework.http.MediaType;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 文件上传 服务层实现
@@ -44,6 +52,8 @@ public class SysOssServiceImpl implements ISysOssService {
     public TableDataInfo<SysOssVo> queryPageList(SysOssBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<SysOss> lqw = buildQueryWrapper(bo);
         Page<SysOssVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        List<SysOssVo> filterResult = result.getRecords().stream().map(this::matchingUrl).collect(Collectors.toList());
+        result.setRecords(filterResult);
         return TableDataInfo.build(result);
     }
 
@@ -51,9 +61,9 @@ public class SysOssServiceImpl implements ISysOssService {
     public List<SysOssVo> listByIds(Collection<Long> ossIds) {
         List<SysOssVo> list = new ArrayList<>();
         for (Long id : ossIds) {
-            SysOssVo vo = SpringUtils.getAopProxy(this).getById(id);
+            SysOssVo vo = getById(id);
             if (ObjectUtil.isNotNull(vo)) {
-                list.add(vo);
+                list.add(this.matchingUrl(vo));
             }
         }
         return list;
@@ -80,13 +90,31 @@ public class SysOssServiceImpl implements ISysOssService {
     }
 
     @Override
-    public SysOss upload(MultipartFile file) {
+    public void download(Long ossId, HttpServletResponse response) throws IOException {
+        SysOssVo sysOss = SpringUtils.getAopProxy(this).getById(ossId);
+        if (ObjectUtil.isNull(sysOss)) {
+            throw new ServiceException("文件数据不存在!");
+        }
+        FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName());
+        response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8");
+        OssClient storage = OssFactory.instance();
+        try(InputStream inputStream = storage.getObjectContent(sysOss.getUrl())) {
+            int available = inputStream.available();
+            IoUtil.copy(inputStream, response.getOutputStream(), available);
+            response.setContentLength(available);
+        } catch (Exception e) {
+            throw new ServiceException(e.getMessage());
+        }
+    }
+
+    @Override
+    public SysOssVo upload(MultipartFile file) {
         String originalfileName = file.getOriginalFilename();
         String suffix = StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
         OssClient storage = OssFactory.instance();
         UploadResult uploadResult;
         try {
-            uploadResult = storage.uploadSuffix(file.getBytes(), suffix, file.getContentType());
+            uploadResult = storage.uploadSuffix(file.getInputStream(), suffix, file.getContentType());
         } catch (IOException e) {
             throw new ServiceException(e.getMessage());
         }
@@ -98,7 +126,9 @@ public class SysOssServiceImpl implements ISysOssService {
         oss.setOriginalName(originalfileName);
         oss.setService(storage.getConfigKey());
         baseMapper.insert(oss);
-        return oss;
+        SysOssVo sysOssVo = new SysOssVo();
+        BeanCopyUtils.copy(oss, sysOssVo);
+        return this.matchingUrl(sysOssVo);
     }
 
     @Override
@@ -114,4 +144,19 @@ public class SysOssServiceImpl implements ISysOssService {
         return baseMapper.deleteBatchIds(ids) > 0;
     }
 
+    /**
+     * 匹配Url
+     *
+     * @param oss OSS对象
+     * @return oss 匹配Url的OSS对象
+     */
+    private SysOssVo matchingUrl(SysOssVo oss) {
+        OssClient storage = OssFactory.instance(oss.getService());
+        // 仅修改桶类型为 private 的URL,临时URL时长为120s
+        if (AccessPolicyType.PRIVATE == storage.getAccessPolicy()) {
+            oss.setUrl(storage.getPrivateUrl(oss.getFileName(), 120));
+        }
+        return oss;
+    }
+
 }

+ 2 - 0
ruoyi-modules/ruoyi-resource/src/main/resources/spy.properties

@@ -24,3 +24,5 @@ outagedetection=true
 outagedetectioninterval=2
 # 是否过滤 Log
 filter=true
+# 过滤 Log 时所排除的 sql 关键字,以逗号分隔
+exclude=SELECT 1

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/resources/spy.properties

@@ -24,3 +24,5 @@ outagedetection=true
 outagedetectioninterval=2
 # 是否过滤 Log
 filter=true
+# 过滤 Log 时所排除的 sql 关键字,以逗号分隔
+exclude=SELECT 1

+ 18 - 0
ruoyi-ui/src/views/system/oss/config.vue

@@ -80,6 +80,13 @@
       <el-table-column label="桶名称" align="center" prop="bucketName" />
       <el-table-column label="前缀" align="center" prop="prefix" />
       <el-table-column label="域" align="center" prop="region" />
+      <el-table-column label="桶权限类型" align="center" prop="accessPolicy">
+        <template slot-scope="scope">
+          <el-tag type="warning" v-if="scope.row.accessPolicy === '0'">private</el-tag>
+          <el-tag type="success" v-if="scope.row.accessPolicy === '1'">public</el-tag>
+          <el-tag type="info" v-if="scope.row.accessPolicy === '2'">custom</el-tag>
+        </template>
+      </el-table-column>
       <el-table-column label="状态" align="center" prop="status">
         <template slot-scope="scope">
           <el-switch
@@ -151,6 +158,13 @@
             >{{dict.label}}</el-radio>
           </el-radio-group>
         </el-form-item>
+        <el-form-item label="桶权限类型">
+          <el-radio-group v-model="form.accessPolicy">
+            <el-radio label="0">private</el-radio>
+            <el-radio label="1">public</el-radio>
+            <el-radio label="2">custom</el-radio>
+          </el-radio-group>
+        </el-form-item>
         <el-form-item label="域" prop="region">
           <el-input v-model="form.region" placeholder="请输入域" />
         </el-form-item>
@@ -259,6 +273,9 @@ export default {
             trigger: "blur",
           },
         ],
+        accessPolicy:[
+          { required: true, message: "accessPolicy不能为空", trigger: "blur" }
+        ]
       },
     };
   },
@@ -292,6 +309,7 @@ export default {
         endpoint: undefined,
         domain: undefined,
         isHttps: "N",
+        accessPolicy: "1",
         region: undefined,
         status: "1",
         remark: undefined,

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است