From b8d8733ad9eeeb170a71897d1078acdbea7680f2 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 04 三月 2025 15:23:38 +0800
Subject: [PATCH] 优化
---
ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java | 118 ++++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 76 insertions(+), 42 deletions(-)
diff --git a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
index 3a24a08..a66779b 100644
--- a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
@@ -3,6 +3,7 @@
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.ObjectMetadata;
+import com.aliyun.oss.model.VoidResult;
import com.ycl.service.oss.OssService;
import com.ycl.utils.ConstantPropertiesUtils;
import com.ycl.utils.common.RandomUtils;
@@ -17,6 +18,8 @@
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
+import java.net.URL;
+import java.net.URLDecoder;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@@ -43,10 +46,14 @@
// 涓婁紶鏂囦欢娴�
try {
// 鑾峰彇鏂囦欢鐨勫悕绉�
- String fileName = "sczf/" + file.getOriginalFilename();
+
byte[] newImg = file.getBytes();
String originalFilename = file.getOriginalFilename();
String fileType = originalFilename.substring(originalFilename.lastIndexOf("."));
+
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+ String fileName = "sczf/" + LocalDateTime.now().format(formatter) + RandomUtils.generateRandomInt(8) + fileType;
+
if (".png".equalsIgnoreCase(fileType) || ".jpg".equalsIgnoreCase(fileType) || ".jpeg".equalsIgnoreCase(fileType)) {
if (file.getSize() > 2097152) {
newImg = compressUnderSize(file.getBytes(), 2097152);
@@ -63,9 +70,10 @@
// 鎶婁笂浼犵殑鏂囦欢璺緞杩斿洖 锛堟墜鍔ㄦ嫾鎺ワ級
// 杩欓噷璁剧疆鍥剧墖鏈夋晥鏃堕棿 鎴戣缃簡30骞�
Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000);
+
String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
- System.out.println("涓婁紶缁撴潫--" + dtf2.format(LocalDateTime.now()));
+ System.out.println("涓婁紶缁撴潫--" + url + "------" + dtf2.format(LocalDateTime.now()));
return url;
} catch (Exception e) {
System.out.println("uploadImages涓婁紶鍥剧墖澶辫触锛�");
@@ -147,59 +155,85 @@
@Override
public boolean deleteImages(String fileUrl) {
- String endpoint = ConstantPropertiesUtils.END_POINT;
- String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
- String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
- String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
- //鍒涘缓OSSClient瀹炰緥
- OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
- String imgFile = fileUrl.replace("https://bucket-ans.oss-cn-hangzhou.aliyuncs.com/", "");
- String fileName = imgFile.substring(0, imgFile.indexOf("?"));
+ try {
- // 鏍规嵁BucketName,objectName鍒犻櫎鏂囦欢
- ossClient.deleteObject(bucketName, fileName);
- ossClient.shutdown();
- return true;
+ String endpoint = ConstantPropertiesUtils.END_POINT;
+ String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
+ String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
+ String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
+ //鍒涘缓OSSClient瀹炰緥
+ OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+
+ String imgFile = fileUrl.replace(ConstantPropertiesUtils.PREFIX_URL, "");
+ String fileName = imgFile;
+ if (imgFile.contains("?")) {
+ fileName = imgFile.substring(0, imgFile.indexOf("?"));
+ }
+ try {
+
+ fileName = URLDecoder.decode(fileName, "UTF-8");
+ } catch (UnsupportedEncodingException ex) {
+// throw new RuntimeException(ex);
+ }
+
+ // 鏍规嵁BucketName,objectName鍒犻櫎鏂囦欢
+ boolean b = ossClient.doesObjectExist(bucketName, fileName);
+ if (b) {
+ VoidResult voidResult = ossClient.deleteObject(bucketName, fileName);
+ System.out.println(voidResult.toString());
+ }
+ ossClient.shutdown();
+ return true;
+
+ } catch (Exception e) {
+ System.out.println("-------鍒犻櫎鍥剧墖澶辫触锛屽浘鐗囧湴鍧�:" + fileUrl);
+ }
+ return false;
}
@Override
- public String uploadImages(InputStream inputStream, String ext) {
- String endpoint = ConstantPropertiesUtils.END_POINT;
- String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
- String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
- String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
+ public String uploadImages(InputStream inputStream, String ext, Integer times) {
+ if (times < 3) {
+ String endpoint = ConstantPropertiesUtils.END_POINT;
+ String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
+ String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
+ String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
- DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- System.out.println("鍑嗗涓婁紶--" + dtf2.format(LocalDateTime.now()));
- // 鍒涘缓OSSClient瀹炰緥銆�
- OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
- // 涓婁紶鏂囦欢娴�
- try {
- // 鑾峰彇鏂囦欢鐨勫悕绉�
- LocalDate date = LocalDate.now();
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
- String fileName = "sczf/" + date.format(formatter) + RandomUtils.generateRandomInt(8) + "." + ext;
+// System.out.println("鍑嗗涓婁紶--" + dtf2.format(LocalDateTime.now()));
+ // 鍒涘缓OSSClient瀹炰緥銆�
+ OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+ // 涓婁紶鏂囦欢娴�
+ try {
+ // 鑾峰彇鏂囦欢鐨勫悕绉�
+ LocalDate date = LocalDate.now();
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+ String fileName = "sczf/" + date.format(formatter) + RandomUtils.generateRandomInt(8) + ext;
- ObjectMetadata objectMetadata = new ObjectMetadata();
- objectMetadata.setContentType(getcontentType(ext));
+ ObjectMetadata objectMetadata = new ObjectMetadata();
+ objectMetadata.setContentType(getcontentType(ext));
- System.out.println("寮�濮嬩笂浼�--" + dtf2.format(LocalDateTime.now()));
+// System.out.println("寮�濮嬩笂浼�--" + dtf2.format(LocalDateTime.now()));
- ossClient.putObject(bucketName, fileName, inputStream, objectMetadata);
- ossClient.shutdown();
+ ossClient.putObject(bucketName, fileName, inputStream, objectMetadata);
+ ossClient.shutdown();
- Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000);
+ Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000);
- String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
+ String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
// System.out.println("oss涓婁紶鎴愬姛锛�" + url);
- System.out.println("涓婁紶瀹屾垚--" + dtf2.format(LocalDateTime.now()));
- return url;
- } catch (Exception e) {
- System.out.println("oss寮傚父锛�" + e.getMessage());
- // e.printStackTrace();
- return this.uploadImages(inputStream, ext);
+// System.out.println("涓婁紶瀹屾垚--" + dtf2.format(LocalDateTime.now()));
+ return url;
+
+ } catch (Exception e) {
+ System.out.println("oss寮傚父锛�" + e.getMessage());
+ // e.printStackTrace();
+ return this.uploadImages(inputStream, ext, times + 1);
+ }
+ } else {
+ return "";
}
}
--
Gitblit v1.8.0