From 8944d4e888930964779c80c6e2133aa194405949 Mon Sep 17 00:00:00 2001 From: baizonghao <1719256278@qq.com> Date: 星期六, 04 三月 2023 12:05:01 +0800 Subject: [PATCH] 阿里云oss --- 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