wenhongquan 1 year ago
parent
commit
f322404365

+ 19 - 0
ruoyi-common/ruoyi-common-core/pom.xml

@@ -94,6 +94,25 @@
             <artifactId>ip2region</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.qiniu</groupId>
+            <artifactId>happy-dns-java</artifactId>
+            <version>0.1.6</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.qiniu</groupId>
+            <artifactId>qiniu-java-sdk</artifactId>
+            <version>[7.13.0, 7.13.99]</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.8.5</version>
+            <scope>compile</scope>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 0 - 7
ruoyi-modules/ruoyi-system/pom.xml

@@ -95,13 +95,6 @@
             <artifactId>ruoyi-common-websocket</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>com.qiniu</groupId>
-            <artifactId>happy-dns-java</artifactId>
-            <version>0.1.6</version>
-            <scope>test</scope>
-        </dependency>
-
     </dependencies>
 
 </project>

+ 42 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java

@@ -3,17 +3,24 @@ package org.dromara.system.controller.system;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.util.ObjectUtil;
+import com.qiniu.util.Auth;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.validate.QueryGroup;
+import org.dromara.common.oss.core.OssClient;
+import org.dromara.common.oss.entity.UploadResult;
+import org.dromara.common.oss.factory.OssFactory;
 import org.dromara.common.web.core.BaseController;
 import org.dromara.common.log.annotation.Log;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.system.domain.bo.SysOssBo;
+import org.dromara.system.domain.bo.SysOssConfigBo;
+import org.dromara.system.domain.vo.SysOssConfigVo;
 import org.dromara.system.domain.vo.SysOssFilesVo;
 import org.dromara.system.domain.vo.SysOssUploadVo;
 import org.dromara.system.domain.vo.SysOssVo;
+import org.dromara.system.service.ISysOssConfigService;
 import org.dromara.system.service.ISysOssService;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotEmpty;
@@ -40,6 +47,8 @@ public class SysOssController extends BaseController {
 
     private final ISysOssService ossService;
 
+    private final ISysOssConfigService ossConfigService;
+
     /**
      * 查询OSS对象存储列表
      */
@@ -86,6 +95,20 @@ public class SysOssController extends BaseController {
         return R.ok(uploadVo);
     }
 
+    @Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    public R<SysOssUploadVo> addfile(@RequestBody SysOssBo bo) {
+        UploadResult p = UploadResult.builder().build();
+        p.setFilename(bo.getFileName());
+        p.setUrl(bo.getUrl());
+        SysOssUploadVo uploadVo = new SysOssUploadVo();
+        SysOssVo oss = ossService.buildResultEntity(bo.getOriginalName(), bo.getFileSuffix(), bo.getSize(), "qiniu", p);
+        uploadVo.setUrl(oss.getUrl());
+        uploadVo.setFileName(oss.getOriginalName());
+        uploadVo.setOssId(oss.getOssId().toString());
+       return  R.ok(uploadVo);
+    }
+
     /**
      * 下载OSS对象
      *
@@ -115,4 +138,23 @@ public class SysOssController extends BaseController {
     }
 
 
+    @GetMapping("/qiniu/token")
+    public R<Object> gettoken(String url) {
+        OssClient storage = OssFactory.instance("qiniu");
+        SysOssConfigBo bo =new SysOssConfigBo();
+        bo.setConfigKey("qiniu");
+        TableDataInfo<SysOssConfigVo> pageList = ossConfigService.queryPageList(bo,new PageQuery());
+
+        String upToken = "";
+        if(pageList.getRows().size()>0){
+            Auth auth = Auth.create(pageList.getRows().get(0).getAccessKey(),  pageList.getRows().get(0).getSecretKey());
+            upToken = auth.uploadToken(pageList.getRows().get(0).getBucketName());
+
+        }
+        return R.ok((Object) upToken);
+
+
+    }
+
+
 }

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java

@@ -2,6 +2,7 @@ package org.dromara.system.service;
 
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.oss.entity.UploadResult;
 import org.dromara.system.domain.bo.SysOssBo;
 import org.dromara.system.domain.vo.SysOssFilesVo;
 import org.dromara.system.domain.vo.SysOssVo;
@@ -27,6 +28,7 @@ public interface ISysOssService {
     SysOssVo getById(Long ossId);
 
     SysOssVo upload(MultipartFile file);
+    public SysOssVo buildResultEntity(String originalfileName, String suffix,Long size, String configKey, UploadResult uploadResult);
 
     SysOssVo upload(File file);
 

+ 4 - 14
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java

@@ -28,6 +28,7 @@ import org.dromara.system.domain.SysOss;
 import org.dromara.system.domain.bo.SysOssBo;
 import org.dromara.system.domain.vo.SysOssFilesVo;
 import org.dromara.system.domain.vo.SysOssVo;
+import org.dromara.system.mapper.SysOssConfigMapper;
 import org.dromara.system.mapper.SysOssMapper;
 import org.dromara.system.service.ISysOssService;
 import jakarta.servlet.http.HttpServletResponse;
@@ -215,7 +216,8 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
     }
 
     @NotNull
-    private SysOssVo buildResultEntity(String originalfileName, String suffix,Long size, String configKey, UploadResult uploadResult) {
+    @Override
+    public SysOssVo buildResultEntity(String originalfileName, String suffix,Long size, String configKey, UploadResult uploadResult) {
         SysOss oss = new SysOss();
         oss.setUrl(uploadResult.getUrl());
         oss.setFileSuffix(suffix);
@@ -268,18 +270,6 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
     }
 
 
-//    private String gettoken(String url) {
-////        OssClient storage = OssFactory.instance(oss.getService());
-////
-////        storage.getConfigKey()
-////        String accessKey = "access key";
-////        String secretKey = "secret key";
-////        String bucket = "bucket name";
-////
-////        Auth auth = Auth.create(accessKey, secretKey);
-////        String upToken = auth.uploadToken(bucket);
-////        System.out.println(upToken);
-//
-//    }
+
 }