From 5d1d4b8516c6071a4bb69ba507f6d23eb73e8a67 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 31 三月 2023 14:10:38 +0800
Subject: [PATCH] 驾驶舱接口优化
---
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