From a33070f3623761e8c14e818294d0f30e388a57ae Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期四, 09 十一月 2023 11:58:54 +0800
Subject: [PATCH] #副PLAN

---
 src/main/java/com/zy/crm/common/service/OssService.java |  125 ++++++++++++++++++++++++++++++-----------
 1 files changed, 90 insertions(+), 35 deletions(-)

diff --git a/src/main/java/com/zy/crm/common/service/OssService.java b/src/main/java/com/zy/crm/common/service/OssService.java
index f7bd76f..1f11c6f 100644
--- a/src/main/java/com/zy/crm/common/service/OssService.java
+++ b/src/main/java/com/zy/crm/common/service/OssService.java
@@ -1,8 +1,9 @@
 package com.zy.crm.common.service;
 
 import com.aliyun.oss.OSSClient;
-import com.aliyun.oss.model.OSSObject;
 import com.aliyun.oss.model.ObjectMetadata;
+import com.aliyun.oss.model.PutObjectRequest;
+import com.aliyun.oss.model.PutObjectResult;
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import lombok.Data;
@@ -12,11 +13,9 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
+import java.io.*;
 import java.net.URL;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 
 /**
@@ -29,8 +28,6 @@
 
     private static Logger log = LoggerFactory.getLogger(OssService.class);
 
-    private static final String OSS_ENDPOINT = "http://oss-cn-hangzhou.aliyuncs.com";
-
     @Value("${aliyun.oss.id}")
     private String accessKeyId;
 
@@ -41,7 +38,10 @@
     private String bucket;
 
     @Value("${aliyun.oss.endpoint}")
-    private String endpoint;
+    private String OSS_ENDPOINT;
+
+    @Value("${aliyun.oss.endpoint2}")
+    private String OSS_ENDPOINT2;
 
     @Autowired
     private SnowflakeIdWorker snowflakeIdWorker;
@@ -50,6 +50,7 @@
      * 涓婁紶OSS鏂囦欢
      * @return the url
      */
+    @Deprecated
     public String upload(InputStream inputStream, String suffix){
         if(suffix.trim().equals("file")){
             suffix="jpg";
@@ -79,26 +80,80 @@
         throw new CoolException("500-涓婁紶澶辫触");
     }
 
+    @Deprecated
+    public String upload(InputStream inputStream, String filename, String contentType) {
+        OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret);
+        String name = "";
+        try {
+            if (!ossClient.doesBucketExist(bucket)) {
+                ossClient.createBucket(bucket);
+                log.info("鎮ㄧ殑Bucket涓嶅瓨鍦紝鍒涘缓Bucket锛歿}", bucket);
+            }
+            SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss");
+            name = format.format(new Date()) + "_" + filename;
+            // 娣诲姞 ContentType
+            ObjectMetadata objectMetadata = new ObjectMetadata();
+//            objectMetadata.setContentType("image/jpg");
+            objectMetadata.setContentType(contentType);
+            ossClient.putObject(bucket, name, inputStream, objectMetadata);
+            Date expiration = new Date(new Date().getTime() + 3600L * 1000 * 24 * 365 * 100);
+            URL url = ossClient.generatePresignedUrl(bucket, name, expiration);
+            log.info("OSS鏂囦欢涓婁紶鎴愬姛: {}", name);
+//            return String.valueOf(url);
+            return "http://zhongyang-ftpserver.oss-cn-hangzhou.aliyuncs.com/" + name;
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            ossClient.shutdown();
+        }
+        throw new CoolException("500-涓婁紶澶辫触");
+    }
+
+    @Deprecated
     public String upload(InputStream inputStream) {
         return upload(inputStream, ".jpg");
     }
 
     /**
-     * 涓嬭浇OSS鏂囦欢
+     * 鏂囦欢涓婁紶
+     * @param filePath OSS璺緞
+     * @param file 鏂囦欢File
      */
-    public void download(String name) {
+    public boolean uploadFile(String filePath, File file) {
         OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret);
-        try {
-            OSSObject ossObject = ossClient.getObject(bucket, name);
-            InputStream inputStream = ossObject.getObjectContent();
-            // do transfer
-            inputStream.close();
-            log.info("OSS鏂囦欢涓嬭浇鎴愬姛: {}", name);
-        } catch (Exception e){
-            e.printStackTrace();
-        } finally {
-            ossClient.shutdown();
-        }
+        // 鍒涘缓PutObjectRequest瀵硅薄銆�
+        PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, filePath, file);
+        // 涓婁紶鏂囦欢銆�
+        PutObjectResult result = ossClient.putObject(putObjectRequest);
+        return true;
+    }
+
+//    /**
+//     * 涓嬭浇鏂囦欢
+//     * @param filePath OSS璺緞
+//     */
+//    public ResponseEntity<InputStreamResource> downloadFile(String filePath) throws IOException {
+//        OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret);
+//        OSSObject ossObject = ossClient.getObject(bucket, filePath);
+//        InputStream inputStream = ossObject.getObjectContent();
+//
+//        // 鍒涘缓鍝嶅簲瀹炰綋锛屽皢杈撳嚭娴佷綔涓烘枃浠跺唴瀹硅繑鍥�
+//        HttpHeaders headers = new HttpHeaders();
+//        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
+//        headers.setContentDispositionFormData("attachment", "output.docx");
+//        InputStreamResource resource = new InputStreamResource(convertToByteArrayInputStream(inputStream));
+//        return ResponseEntity.ok()
+//                .headers(headers)
+//                .body(resource);
+//    }
+
+    @Deprecated
+    public String download(String name) {
+        OSSClient ossClient = new OSSClient(OSS_ENDPOINT2, accessKeyId, accessKeySecret);
+        //鑾峰彇涓存椂涓嬭浇閾炬帴
+        URL url = ossClient.generatePresignedUrl(bucket, name, new Date(new Date().getTime() + 3600 * 1000));
+        log.info("OSS鏂囦欢涓存椂涓嬭浇璺緞锛孶RL璺緞: {}", url);
+        return url.toString();
     }
 
     /**
@@ -118,20 +173,20 @@
     }
 
     public static void main(String[] args) {
-        File file = new File("E:\\tmp\\v2-fbbb97b977b5cebc66dc3cefab0ac981_r.jpg");
-        try {
-            InputStream in = new FileInputStream(file);
-            OssService ossService = new OssService();
-            ossService.setAccessKeyId("LTAI4GDzr6ioSHuRw2mk22ug");
-            ossService.setAccessKeySecret("84CHL7tF21LbU1qpaP0jn9mIAZP9bv");
-            ossService.setBucket("tjdt");
-            ossService.setEndpoint("http://oss-cn-hangzhou.aliyuncs.com");
-            ossService.setSnowflakeIdWorker(new SnowflakeIdWorker());
-            System.out.println(ossService.upload(in));
-
-        } catch (FileNotFoundException e) {
-            e.printStackTrace();
-        }
+//        File file = new File("E:\\tmp\\v2-fbbb97b977b5cebc66dc3cefab0ac981_r.jpg");
+//        try {
+//            InputStream in = new FileInputStream(file);
+//            OssService ossService = new OssService();
+//            ossService.setAccessKeyId("LTAI4GDzr6ioSHuRw2mk22ug");
+//            ossService.setAccessKeySecret("84CHL7tF21LbU1qpaP0jn9mIAZP9bv");
+//            ossService.setBucket("tjdt");
+//            ossService.setEndpoint("http://oss-cn-hangzhou.aliyuncs.com");
+//            ossService.setSnowflakeIdWorker(new SnowflakeIdWorker());
+//            System.out.println(ossService.upload(in));
+//
+//        } catch (FileNotFoundException e) {
+//            e.printStackTrace();
+//        }
     }
 
 }

--
Gitblit v1.9.1