From afa3bc1e2f39f66f59ee9b15d6af16593acdc9a4 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期六, 02 十二月 2023 10:38:27 +0800 Subject: [PATCH] # --- src/main/java/com/zy/crm/common/service/OssService.java | 150 +++++++++++++++---------------------------------- 1 files changed, 46 insertions(+), 104 deletions(-) diff --git a/src/main/java/com/zy/crm/common/service/OssService.java b/src/main/java/com/zy/crm/common/service/OssService.java index 1472c11..1f11c6f 100644 --- a/src/main/java/com/zy/crm/common/service/OssService.java +++ b/src/main/java/com/zy/crm/common/service/OssService.java @@ -1,7 +1,6 @@ package com.zy.crm.common.service; import com.aliyun.oss.OSSClient; -import com.aliyun.oss.model.OSSObject; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectRequest; import com.aliyun.oss.model.PutObjectResult; @@ -12,19 +11,12 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.io.InputStreamResource; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.io.*; import java.net.URL; -import java.nio.file.Path; +import java.text.SimpleDateFormat; import java.util.Date; -import java.nio.file.StandardCopyOption; -import java.nio.file.Files; -import java.nio.file.Paths; /** * 闃块噷浜慜SS鏈嶅姟绫� @@ -36,8 +28,6 @@ private static Logger log = LoggerFactory.getLogger(OssService.class); - private static final String OSS_ENDPOINT = "http://oss-cn-hangzhou.aliyuncs.com"; - @Value("${aliyun.oss.id}") private String accessKeyId; @@ -48,7 +38,10 @@ private String bucket; @Value("${aliyun.oss.endpoint}") - private String endpoint; + private String OSS_ENDPOINT; + + @Value("${aliyun.oss.endpoint2}") + private String OSS_ENDPOINT2; @Autowired private SnowflakeIdWorker snowflakeIdWorker; @@ -88,18 +81,16 @@ } @Deprecated - public String upload(InputStream inputStream, String suffix,String contentType){ - if(suffix.trim().equals("file")){ - suffix="jpg"; - } + public String upload(InputStream inputStream, String filename, String contentType) { OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret); String name = ""; try { if (!ossClient.doesBucketExist(bucket)) { ossClient.createBucket(bucket); - log.info("鎮ㄧ殑Bucket涓嶅瓨鍦紝鍒涘缓Bucket锛歿}",bucket); + log.info("鎮ㄧ殑Bucket涓嶅瓨鍦紝鍒涘缓Bucket锛歿}", bucket); } - name = String.valueOf(snowflakeIdWorker.nextId()).concat(".").concat(suffix); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss"); + name = format.format(new Date()) + "_" + filename; // 娣诲姞 ContentType ObjectMetadata objectMetadata = new ObjectMetadata(); // objectMetadata.setContentType("image/jpg"); @@ -109,8 +100,8 @@ URL url = ossClient.generatePresignedUrl(bucket, name, expiration); log.info("OSS鏂囦欢涓婁紶鎴愬姛: {}", name); // return String.valueOf(url); - return "http://zhongyang-ftpserver.oss-cn-hangzhou.aliyuncs.com/"+name; - } catch (Exception e){ + return "http://zhongyang-ftpserver.oss-cn-hangzhou.aliyuncs.com/" + name; + } catch (Exception e) { e.printStackTrace(); } finally { ossClient.shutdown(); @@ -137,81 +128,32 @@ return true; } - /** - * 涓嬭浇鏂囦欢 - * @param filePath OSS璺緞 - */ - public ResponseEntity<InputStreamResource> downloadFile(String filePath) throws IOException { - OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret); - OSSObject ossObject = ossClient.getObject(bucket, filePath); - InputStream inputStream = ossObject.getObjectContent(); - - // 鍒涘缓鍝嶅簲瀹炰綋锛屽皢杈撳嚭娴佷綔涓烘枃浠跺唴瀹硅繑鍥� - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); - headers.setContentDispositionFormData("attachment", "output.docx"); - InputStreamResource resource = new InputStreamResource(convertToByteArrayInputStream(inputStream)); - return ResponseEntity.ok() - .headers(headers) - .body(resource); - } - - public static ByteArrayInputStream convertToByteArrayInputStream(InputStream inputStream) throws IOException { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - byte[] buffer = new byte[4096]; - int bytesRead; - while ((bytesRead = inputStream.read(buffer)) != -1) { - outputStream.write(buffer, 0, bytesRead); - } - byte[] data = outputStream.toByteArray(); - return new ByteArrayInputStream(data); - } - - /** - * 涓嬭浇OSS鏂囦欢 - */ -// public void download(String name) { +// /** +// * 涓嬭浇鏂囦欢 +// * @param filePath OSS璺緞 +// */ +// public ResponseEntity<InputStreamResource> downloadFile(String filePath) throws IOException { // OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret); -// try { -// OSSObject ossObject = ossClient.getObject(bucket, name); -// InputStream inputStream = ossObject.getObjectContent(); -// // do transfer -// inputStream.close(); -// log.info("OSS鏂囦欢涓嬭浇鎴愬姛: {}", name); -// } catch (Exception e){ -// e.printStackTrace(); -// } finally { -// ossClient.shutdown(); -// } +// OSSObject ossObject = ossClient.getObject(bucket, filePath); +// InputStream inputStream = ossObject.getObjectContent(); +// +// // 鍒涘缓鍝嶅簲瀹炰綋锛屽皢杈撳嚭娴佷綔涓烘枃浠跺唴瀹硅繑鍥� +// HttpHeaders headers = new HttpHeaders(); +// headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); +// headers.setContentDispositionFormData("attachment", "output.docx"); +// InputStreamResource resource = new InputStreamResource(convertToByteArrayInputStream(inputStream)); +// return ResponseEntity.ok() +// .headers(headers) +// .body(resource); // } @Deprecated public String download(String name) { - OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret); - try { - OSSObject ossObject = ossClient.getObject(bucket, name); - InputStream inputStream = ossObject.getObjectContent(); - - // 鑾峰彇榛樿涓嬭浇鐩綍 - String defaultDownloadDir = System.getProperty("user.home") + "/Downloads"; - - // 鍒涘缓鏂囦欢淇濆瓨璺緞 - Path filePath = Paths.get(defaultDownloadDir, name); - - // 灏嗚緭鍏ユ祦澶嶅埗鍒版枃浠� - Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING); - - // 鍏抽棴杈撳叆娴� - inputStream.close(); - - log.info("OSS鏂囦欢涓嬭浇鎴愬姛锛屼繚瀛樿矾寰�: {}", filePath); - return ""+filePath; - } catch (Exception e) { - e.printStackTrace(); - } finally { - ossClient.shutdown(); - } - return ""; + OSSClient ossClient = new OSSClient(OSS_ENDPOINT2, accessKeyId, accessKeySecret); + //鑾峰彇涓存椂涓嬭浇閾炬帴 + URL url = ossClient.generatePresignedUrl(bucket, name, new Date(new Date().getTime() + 3600 * 1000)); + log.info("OSS鏂囦欢涓存椂涓嬭浇璺緞锛孶RL璺緞: {}", url); + return url.toString(); } /** @@ -231,20 +173,20 @@ } public static void main(String[] args) { - File file = new File("E:\\tmp\\v2-fbbb97b977b5cebc66dc3cefab0ac981_r.jpg"); - try { - InputStream in = new FileInputStream(file); - OssService ossService = new OssService(); - ossService.setAccessKeyId("LTAI4GDzr6ioSHuRw2mk22ug"); - ossService.setAccessKeySecret("84CHL7tF21LbU1qpaP0jn9mIAZP9bv"); - ossService.setBucket("tjdt"); - ossService.setEndpoint("http://oss-cn-hangzhou.aliyuncs.com"); - ossService.setSnowflakeIdWorker(new SnowflakeIdWorker()); - System.out.println(ossService.upload(in)); - - } catch (FileNotFoundException e) { - e.printStackTrace(); - } +// File file = new File("E:\\tmp\\v2-fbbb97b977b5cebc66dc3cefab0ac981_r.jpg"); +// try { +// InputStream in = new FileInputStream(file); +// OssService ossService = new OssService(); +// ossService.setAccessKeyId("LTAI4GDzr6ioSHuRw2mk22ug"); +// ossService.setAccessKeySecret("84CHL7tF21LbU1qpaP0jn9mIAZP9bv"); +// ossService.setBucket("tjdt"); +// ossService.setEndpoint("http://oss-cn-hangzhou.aliyuncs.com"); +// ossService.setSnowflakeIdWorker(new SnowflakeIdWorker()); +// System.out.println(ossService.upload(in)); +// +// } catch (FileNotFoundException e) { +// e.printStackTrace(); +// } } } -- Gitblit v1.9.1