From 4c57c2a04408fb8f9c0c08cf8d1919c76a90658c Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 11 四月 2022 11:50:16 +0800
Subject: [PATCH] update springboot-admin 2.6.5 => 2.6.6 update qiniu 7.9.3 => 7.9.5 update qcloud 5.6.68 => 5.6.72 update minio 8.3.7 => 8.3.8 update okhttp 4.9.2 => 4.9.3

---
 ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java |   31 ++++++++++++++++++++++---------
 1 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java
index 60ac032..f5be957 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java
+++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java
@@ -1,6 +1,7 @@
 package com.ruoyi.oss.service.impl;
 
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.oss.constant.OssConstant;
 import com.ruoyi.oss.entity.UploadResult;
 import com.ruoyi.oss.enumd.OssEnumd;
 import com.ruoyi.oss.enumd.PolicyType;
@@ -8,7 +9,10 @@
 import com.ruoyi.oss.properties.OssProperties;
 import com.ruoyi.oss.service.abstractd.AbstractOssStrategy;
 import io.minio.*;
+import io.minio.http.HttpUtils;
+import okhttp3.HttpUrl;
 import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
@@ -18,22 +22,29 @@
  *
  * @author Lion Li
  */
+@Component
 public class MinioOssStrategy extends AbstractOssStrategy {
 
     private MinioClient minioClient;
 
     @Override
-    public void init(OssProperties cloudStorageProperties) {
-        properties = cloudStorageProperties;
+    public void init(OssProperties ossProperties) {
+        super.init(ossProperties);
         try {
-            minioClient = MinioClient.builder()
-                .endpoint(properties.getEndpoint())
-                .credentials(properties.getAccessKey(), properties.getSecretKey())
-                .build();
+            MinioClient.Builder builder = MinioClient.builder();
+            if (OssConstant.IS_HTTPS.equals(ossProperties.getIsHttps())) {
+                HttpUrl url = HttpUtils.getBaseUrl(properties.getEndpoint())
+                    .newBuilder().scheme("https").build();
+                builder.endpoint(url);
+            } else {
+                builder.endpoint(properties.getEndpoint());
+            }
+            minioClient = builder.credentials(properties.getAccessKey(), properties.getSecretKey()).build();
             createBucket();
         } catch (Exception e) {
             throw new OssException("Minio瀛樺偍閰嶇疆閿欒! 璇锋鏌ョ郴缁熼厤缃�:[" + e.getMessage() + "]");
         }
+        isInit = true;
     }
 
     @Override
@@ -56,8 +67,8 @@
     }
 
     @Override
-    public String getServiceType() {
-        return OssEnumd.MINIO.getValue();
+    public OssEnumd getServiceType() {
+        return OssEnumd.MINIO;
     }
 
     @Override
@@ -68,6 +79,8 @@
     @Override
     public UploadResult upload(InputStream inputStream, String path, String contentType) {
         try {
+            // 瑙e喅 inputStream.available() 鍐� socket 涓嬩紶杈撳欢杩熼棶棰� 瀵艰嚧鑾峰彇鏁板�间笉绮剧‘
+            Thread.sleep(1000);
             minioClient.putObject(PutObjectArgs.builder()
                 .bucket(properties.getBucketName())
                 .object(path)
@@ -77,7 +90,7 @@
         } catch (Exception e) {
             throw new OssException("涓婁紶鏂囦欢澶辫触锛岃鏍稿Minio閰嶇疆淇℃伅:[" + e.getMessage() + "]");
         }
-        return new UploadResult().setUrl(getEndpointLink() + "/" + path).setFilename(path);
+        return UploadResult.builder().url(getEndpointLink() + "/" + path).filename(path).build();
     }
 
     @Override

--
Gitblit v1.9.3