From 8944d4e888930964779c80c6e2133aa194405949 Mon Sep 17 00:00:00 2001
From: baizonghao <1719256278@qq.com>
Date: 星期六, 04 三月 2023 12:05:01 +0800
Subject: [PATCH] 阿里云oss

---
 ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java |   96 ++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 84 insertions(+), 12 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java b/ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java
index fa3b84e..c08dcff 100644
--- a/ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java
+++ b/ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java
@@ -4,10 +4,15 @@
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSClientBuilder;
 import com.aliyun.oss.OSSException;
+import com.aliyun.oss.model.ObjectMetadata;
+import com.aliyun.oss.model.PutObjectResult;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.util.Date;
 import java.util.UUID;
 
 @Component
@@ -34,19 +39,49 @@
         AliyunUtils.bucketName = bucketName;
     }
 
-    public static String upload(InputStream inputStream, String orginalFileName){
+//    public static String upload(InputStream inputStream, String orginalFileName){
+//        // 鍒涘缓OSSClient瀹炰緥銆�
+//        OSS ossClient = new OSSClientBuilder().build(endpoint, keyId, keySecret);
+//        // 鏂囦欢鍚�
+//        String fileName = UUID.randomUUID().toString();
+//        //鏂囦欢鎵╁睍鍚�
+//        String fileExtention = orginalFileName.substring(orginalFileName.lastIndexOf("."));
+//        //鏈�缁堢殑璺緞 绫讳技avatar/2021/12/05/xxxxxxxxx.jpg
+//        String objectName = fileName+fileExtention;
+//        ossClient.putObject(bucketName, objectName, inputStream);
+//        // 鍏抽棴OSSClient銆�
+//        ossClient.shutdown();
+//        return "https://"+bucketName+"."+endpoint+"/"+objectName;
+//    }
+
+    public String upload(MultipartFile file) {
+
+        String accessKeyId = keyId;
+        String accessKeySecret = keySecret;
+
         // 鍒涘缓OSSClient瀹炰緥銆�
-        OSS ossClient = new OSSClientBuilder().build(endpoint, keyId, keySecret);
-        // 鏂囦欢鍚�
-        String fileName = UUID.randomUUID().toString();
-        //鏂囦欢鎵╁睍鍚�
-        String fileExtention = orginalFileName.substring(orginalFileName.lastIndexOf("."));
-        //鏈�缁堢殑璺緞 绫讳技avatar/2021/12/05/xxxxxxxxx.jpg
-        String objectName = fileName+fileExtention;
-        ossClient.putObject(bucketName, objectName, inputStream);
-        // 鍏抽棴OSSClient銆�
-        ossClient.shutdown();
-        return "https://"+bucketName+"."+endpoint+"/"+objectName;
+        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+        // 涓婁紶鏂囦欢娴�
+        try {
+            // 鑾峰彇鏂囦欢鐨勫悕绉�
+            String fileName = file.getOriginalFilename();
+            ObjectMetadata objectMetadata = new ObjectMetadata();
+            objectMetadata.setContentType(getcontentType(fileName.substring(fileName.lastIndexOf("."))));
+            // 璋冪敤oss鐨勬柟娉曞疄鐜伴暱浼�
+            // 绗竴涓弬鏁� bucketName
+            // 绗簩涓弬鏁� 涓婁紶鍒皁ss鐨勬枃浠惰矾寰勫拰鏂囦欢鍚嶇О
+            ossClient.putObject(bucketName, fileName, new ByteArrayInputStream(file.getBytes()),objectMetadata);
+            // 鍏抽棴OSSClient銆�
+            ossClient.shutdown();
+            // 鎶婁笂浼犵殑鏂囦欢璺緞杩斿洖 锛堟墜鍔ㄦ嫾鎺ワ級
+            // 杩欓噷璁剧疆鍥剧墖鏈夋晥鏃堕棿 鎴戣缃簡30骞�
+            Date expiration = new Date(System.currentTimeMillis() + 946080000 * 1000);
+            String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
+            return url;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
     }
 
     public static void delete(String link){
@@ -77,5 +112,42 @@
     }
 
 
+    // 瀹炵幇鍥剧墖鐨勯瑙堝姛鑳�
+    public static String getcontentType(String FilenameExtension) {
+        if (FilenameExtension.equalsIgnoreCase(".bmp")) {
+            return "image/bmp";
+        }
+        if (FilenameExtension.equalsIgnoreCase(".gif")) {
+            return "image/gif";
+        }
+        if (FilenameExtension.equalsIgnoreCase(".jpeg") ||
+                FilenameExtension.equalsIgnoreCase(".jpg") ||
+                FilenameExtension.equalsIgnoreCase(".png")) {
+            return "image/jpg";
+        }
+        if (FilenameExtension.equalsIgnoreCase(".html")) {
+            return "text/html";
+        }
+        if (FilenameExtension.equalsIgnoreCase(".txt")) {
+            return "text/plain";
+        }
+        if (FilenameExtension.equalsIgnoreCase(".vsd")) {
+            return "application/vnd.visio";
+        }
+        if (FilenameExtension.equalsIgnoreCase(".pptx") ||
+                FilenameExtension.equalsIgnoreCase(".ppt")) {
+            return "application/vnd.ms-powerpoint";
+        }
+        if (FilenameExtension.equalsIgnoreCase(".docx") ||
+                FilenameExtension.equalsIgnoreCase(".doc")) {
+            return "application/msword";
+        }
+        if (FilenameExtension.equalsIgnoreCase(".xml")) {
+            return "text/xml";
+        }
+        return "image/jpg";
+    }
+
+
 
 }

--
Gitblit v1.8.0