lyhzzz před 5 měsíci
rodič
revize
5733d27c08

+ 55 - 0
src/main/java/com/fdkankan/ucenter/config/FyunConfig.java

@@ -0,0 +1,55 @@
+package com.fdkankan.ucenter.config;
+
+import com.aliyun.oss.HttpMethod;
+import com.aliyun.oss.OSSClient;
+import com.aliyun.oss.model.GeneratePresignedUrlRequest;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.ucenter.common.constants.NacosProperty;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.context.annotation.Configuration;
+
+import java.net.URL;
+
+@Configuration
+@RefreshScope
+public class FyunConfig {
+
+    @Value("${fyun.type}")
+    public String type;
+    @Value("${fyun.key}")
+    public String key;
+    @Value("${fyun.secret}")
+    public String secret;
+    @Value("${fyun.bucket}")
+    public String bucket;
+    @Value("${fyun.endPoint}")
+    public String endPoint;
+    @Value("${fyun.host}")
+    public String host;
+
+    @Autowired
+    FYunFileServiceInterface fYunFileServiceInterface;
+
+    public OSSClient build(){
+        return new OSSClient(endPoint.replace("-internal",""),key,secret);
+    }
+
+    public URL getPresignedUrl( String url) {
+        if(!"oss".equals(type)){
+            return fYunFileServiceInterface.getPresignedUrl(url);
+        }
+        java.util.Date expiration = new java.util.Date();
+        long expTimeMillis = expiration.getTime();
+        expTimeMillis += 1000 * 60 * 60 * 8;
+        expiration.setTime(expTimeMillis);
+        GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucket, url);
+        generatePresignedUrlRequest.setMethod(HttpMethod.PUT);
+        generatePresignedUrlRequest.setExpiration(expiration);
+        OSSClient build = this.build();
+        URL url1 = build.generatePresignedUrl(generatePresignedUrlRequest);
+        build.shutdown();
+        return url1;
+    }
+}

+ 6 - 2
src/main/java/com/fdkankan/ucenter/controller/SceneController.java

@@ -3,6 +3,8 @@ package com.fdkankan.ucenter.controller;
 
 import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.aliyun.oss.OSSClient;
+import com.aliyun.oss.internal.OSSUtils;
 import com.fdkankan.common.util.JwtUtil;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.ucenter.common.BaseController;
@@ -12,6 +14,7 @@ import com.fdkankan.ucenter.common.constants.ConstantFilePath;
 import com.fdkankan.ucenter.common.constants.NacosProperty;
 import com.fdkankan.ucenter.common.constants.ResultCode;
 import com.fdkankan.ucenter.common.constants.ResultCodeMsg;
+import com.fdkankan.ucenter.config.FyunConfig;
 import com.fdkankan.ucenter.entity.ScenePlus;
 import com.fdkankan.ucenter.entity.User;
 import com.fdkankan.ucenter.exception.BusinessException;
@@ -307,13 +310,14 @@ public class SceneController extends BaseController {
         return Result.success();
     }
 
+    @Autowired
+    FyunConfig fyunConfig;
 
     @PostMapping("/getUploadUrl")
     public Result getUploadUrl( @RequestParam(value = "fileName",required = false)String fileName) {
         String newFileName = UUID.randomUUID().toString().replace("-","");
         String suffix = fileName.substring(fileName.lastIndexOf("."));
-
-        URL presignedUrl = fYunFileServiceInterface.getPresignedUrl("ucenter/e57/" + newFileName + suffix);
+        URL presignedUrl =  fyunConfig.getPresignedUrl("ucenter/e57/" + newFileName + suffix);
         HashMap<String, Object> map = new HashMap<>();
         map.put("newFileName",newFileName + suffix);
         map.put("url",presignedUrl.toString().replace("-internal",""));