From ab060213fe5b62ba8bf9b87c8a93ba7e9fea05db Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期六, 02 四月 2022 11:39:01 +0800
Subject: [PATCH] 单灯数据导出

---
 sandu-common/src/main/java/com/sandu/common/file/impl/AliOssFileServiceImpl.java |   69 +++++++++++++++++++++++++++++++---
 1 files changed, 62 insertions(+), 7 deletions(-)

diff --git a/sandu-common/src/main/java/com/sandu/common/file/impl/AliOssFileServiceImpl.java b/sandu-common/src/main/java/com/sandu/common/file/impl/AliOssFileServiceImpl.java
index 6f927bc..ac43eab 100644
--- a/sandu-common/src/main/java/com/sandu/common/file/impl/AliOssFileServiceImpl.java
+++ b/sandu-common/src/main/java/com/sandu/common/file/impl/AliOssFileServiceImpl.java
@@ -15,11 +15,13 @@
 import com.sandu.common.file.IFileUpload;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
+import java.io.File;
 import java.io.IOException;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -29,14 +31,14 @@
  * @date 2020/12/17 15:31
  */
 @Slf4j
-@AllArgsConstructor
+@Component
 public class AliOssFileServiceImpl implements IFileUpload {
 
-    private final String endPoint;
-    private final String keyId;
-    private final String keySecret;
-    private final String bucketName;
-    private final String host;
+    private final String endPoint="oss-cn-shanghai.aliyuncs.com";
+    private final String keyId="LTAI5tPdpt5wvJyLipRijFSP";
+    private final String keySecret="1ahYfCKd0yTddsUnuDLQzI23MLh4VQ";
+    private final String bucketName= "ximonsmart";
+    private String host;
 
     @Override
     public FileUploadDto uploadFile(MultipartFile multipartFile) {
@@ -44,7 +46,7 @@
         long size = multipartFile.getSize();
         String suffix = FileUtil.getSuffix(originalFilename);
         String dayStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm"));
-        String fileName = dayStr + UUID.fastUUID().toString() + "." + suffix;
+        String fileName = dayStr + UUID.fastUUID()+ "." + suffix;
 
         FileUploadDto uploadDto = new FileUploadDto();
         OSS ossClient = new OSSClientBuilder().build(endPoint, keyId, keySecret);
@@ -101,6 +103,59 @@
                 uploadDto.setHeight(img.getHeight());
             }
         }
+
+        return uploadDto;
+    }
+
+    public FileUploadDto uploadFile(File multipartFile) {
+        String originalFilename = multipartFile.getName();
+//        long size = multipartFile.get();
+        String suffix = FileUtil.getSuffix(originalFilename);
+        String dayStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm"));
+        String fileName = dayStr + UUID.fastUUID()+ "." + suffix;
+
+        FileUploadDto uploadDto = new FileUploadDto();
+        OSS ossClient = new OSSClientBuilder().build(endPoint, keyId, keySecret);
+        try {
+            //瀹瑰櫒涓嶅瓨鍦紝灏卞垱寤�
+            if (!ossClient.doesBucketExist(bucketName)) {
+                ossClient.createBucket(bucketName);
+                CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
+                createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
+                ossClient.createBucket(createBucketRequest);
+            }
+            //涓婁紶鏂囦欢
+            PutObjectResult result = ossClient.putObject(new PutObjectRequest(bucketName, fileName, multipartFile));
+            //璁剧疆鏉冮檺 杩欓噷鏄叕寮�璇�
+//            ossClient.setBucketAcl(ossProperties.getBucketName(), CannedAccessControlList.PublicRead);
+
+            if (result != null) {
+                String url = "";
+                // https://BucketName.Endpoint/ObjectName
+                if (StrUtil.isBlank(host)) {
+                    url = "https://" + bucketName + "." + endPoint + "/" + fileName;
+                } else {
+                    if (!host.endsWith("/")) {
+                        url = host + "/" + fileName;
+                    } else {
+                        url = host + fileName;
+                    }
+                }
+                uploadDto.setFileUrl(url);
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            throw new BusinessException(e.getMessage());
+        } finally {
+            //鍏抽棴
+            ossClient.shutdown();
+        }
+
+        uploadDto.setOriginName(originalFilename);
+        uploadDto.setFileName(fileName);
+        uploadDto.setFileType(FileUtil.extName(originalFilename));
+        uploadDto.setStorageType(FileStorageEnums.ALIBABA.getCode());
+
         return uploadDto;
     }
 }

--
Gitblit v1.9.3