From 5b13db7e2c95385d69b8bdb449560bbbfe359146 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 23 十月 2025 17:16:47 +0800
Subject: [PATCH] 广告物料零星结算接口

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OssServiceImpl.java |   82 +++++++++++++++++++++++++++++-----------
 1 files changed, 59 insertions(+), 23 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OssServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OssServiceImpl.java
index 2d53aea..0ca8128 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OssServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OssServiceImpl.java
@@ -63,32 +63,68 @@
      */
     @Override
     public String upload(String storagePath, MultipartFile file) throws IOException {
-        CredentialsProvider credentialsProvider = new DefaultCredentialProvider(OssConfig.ACCESS_KEY_ID, OssConfig.ACCESS_KEY_SECRET);
-        String region = "cn-chengdu";
-        // 创建OSSClient实例。
-        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
-        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
-        OSS ossClient = OSSClientBuilder.create()
-                .endpoint(OssConfig.UPLOAD_ENDPOINT)
-                .credentialsProvider(credentialsProvider)
-                .clientConfiguration(clientBuilderConfiguration)
-                .region(region)
-                .build();
-        InputStream inputStream = file.getInputStream();
+        OSS ossClient = null;
+        try {
+            CredentialsProvider credentialsProvider = new DefaultCredentialProvider(OssConfig.ACCESS_KEY_ID, OssConfig.ACCESS_KEY_SECRET);
+            String region = "cn-chengdu";
+            // 创建OSSClient实例。
+            ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
+            clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
+            ossClient = OSSClientBuilder.create()
+                    .endpoint(OssConfig.UPLOAD_ENDPOINT)
+                    .credentialsProvider(credentialsProvider)
+                    .clientConfiguration(clientBuilderConfiguration)
+                    .region(region)
+                    .build();
+            InputStream inputStream = file.getInputStream();
 
-        String originFileName = file.getOriginalFilename();
-        String fileExt = Objects.requireNonNull(originFileName).substring(originFileName.lastIndexOf(".") + 1);
-        String fileName = originFileName.substring(0, originFileName.lastIndexOf("."));
-        // 设置文件名
-        String filePathName = generateRelativeStoragePath(storagePath, fileExt, fileName);
-        // 创建PutObjectRequest对象。
-        PutObjectRequest putObjectRequest = new PutObjectRequest(OssConfig.BUCKET_NAME, filePathName, inputStream);
-        // 创建PutObject请求。
-        PutObjectResult result = ossClient.putObject(putObjectRequest);
+            String originFileName = file.getOriginalFilename();
+            String fileExt = Objects.requireNonNull(originFileName).substring(originFileName.lastIndexOf(".") + 1);
+            String fileName = originFileName.substring(0, originFileName.lastIndexOf("."));
+            // 设置文件名
+            String filePathName = generateRelativeStoragePath(storagePath, fileExt, fileName);
+            // 创建PutObjectRequest对象。
+            PutObjectRequest putObjectRequest = new PutObjectRequest(OssConfig.BUCKET_NAME, filePathName, inputStream);
+            // 创建PutObject请求。
+            PutObjectResult result = ossClient.putObject(putObjectRequest);
 
-        return OssConfig.DOWNLOAD_ENDPOINT + filePathName;
+            return OssConfig.DOWNLOAD_ENDPOINT + filePathName;
+        } finally {
+            ossClient.shutdown();
+        }
     }
-    
+
+    @Override
+    public String uploadByInputStream(InputStream inputStream) {
+        OSS ossClient = null;
+        try {
+            CredentialsProvider credentialsProvider = new DefaultCredentialProvider(OssConfig.ACCESS_KEY_ID, OssConfig.ACCESS_KEY_SECRET);
+            String region = "cn-chengdu";
+            // 创建OSSClient实例。
+            ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
+            clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
+            ossClient = OSSClientBuilder.create()
+                    .endpoint(OssConfig.UPLOAD_ENDPOINT)
+                    .credentialsProvider(credentialsProvider)
+                    .clientConfiguration(clientBuilderConfiguration)
+                    .region(region)
+                    .build();
+
+            String fileExt = "png";
+            String fileName = UUID.randomUUID().toString();
+            // 设置文件名
+            String filePathName = generateRelativeStoragePath(OssConfig.FOLDER, fileExt, fileName);
+            // 创建PutObjectRequest对象。
+            PutObjectRequest putObjectRequest = new PutObjectRequest(OssConfig.BUCKET_NAME, filePathName, inputStream);
+            // 创建PutObject请求。
+            PutObjectResult result = ossClient.putObject(putObjectRequest);
+
+            return OssConfig.DOWNLOAD_ENDPOINT + filePathName;
+        } finally {
+            ossClient.shutdown();
+        }
+    }
+
     /**
      * <pre>
      * 获取存储的相对路径

--
Gitblit v1.7.1