From 7885832c819f7922eddf20480cd9e4d4e97b265e Mon Sep 17 00:00:00 2001 From: LSH Date: 星期一, 21 八月 2023 15:47:14 +0800 Subject: [PATCH] #oss实装 --- src/main/java/com/zy/crm/manager/controller/PlanController.java | 12 ++- src/main/webapp/static/js/plan/plan.js | 67 +++++++++++----------- src/main/resources/application.yml | 8 +- src/main/java/com/zy/crm/common/service/OssService.java | 69 +++++++++++++++++++++- 4 files changed, 111 insertions(+), 45 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 f7bd76f..fc3ce79 100644 --- a/src/main/java/com/zy/crm/common/service/OssService.java +++ b/src/main/java/com/zy/crm/common/service/OssService.java @@ -17,7 +17,11 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.net.URL; +import java.nio.file.Path; import java.util.Date; +import java.nio.file.StandardCopyOption; +import java.nio.file.Files; +import java.nio.file.Paths; /** * 闃块噷浜慜SS鏈嶅姟绫� @@ -78,6 +82,35 @@ } throw new CoolException("500-涓婁紶澶辫触"); } + public String upload(InputStream inputStream, String suffix,String contentType){ + if(suffix.trim().equals("file")){ + suffix="jpg"; + } + OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret); + String name = ""; + try { + if (!ossClient.doesBucketExist(bucket)) { + ossClient.createBucket(bucket); + log.info("鎮ㄧ殑Bucket涓嶅瓨鍦紝鍒涘缓Bucket锛歿}",bucket); + } + name = String.valueOf(snowflakeIdWorker.nextId()).concat(".").concat(suffix); + // 娣诲姞 ContentType + ObjectMetadata objectMetadata = new ObjectMetadata(); +// objectMetadata.setContentType("image/jpg"); + objectMetadata.setContentType(contentType); + ossClient.putObject(bucket, name, inputStream, objectMetadata); + Date expiration = new Date(new Date().getTime() + 3600L * 1000 * 24 * 365 * 100); + 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){ + e.printStackTrace(); + } finally { + ossClient.shutdown(); + } + throw new CoolException("500-涓婁紶澶辫触"); + } public String upload(InputStream inputStream) { return upload(inputStream, ".jpg"); @@ -86,19 +119,47 @@ /** * 涓嬭浇OSS鏂囦欢 */ - public void download(String name) { +// public void download(String name) { +// 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(); +// } +// } + + public String download(String name) { OSSClient ossClient = new OSSClient(OSS_ENDPOINT, accessKeyId, accessKeySecret); try { OSSObject ossObject = ossClient.getObject(bucket, name); InputStream inputStream = ossObject.getObjectContent(); - // do transfer + + // 鑾峰彇榛樿涓嬭浇鐩綍 + 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鏂囦欢涓嬭浇鎴愬姛: {}", name); - } catch (Exception e){ + + log.info("OSS鏂囦欢涓嬭浇鎴愬姛锛屼繚瀛樿矾寰�: {}", filePath); + return ""+filePath; + } catch (Exception e) { e.printStackTrace(); } finally { ossClient.shutdown(); } + return ""; } /** diff --git a/src/main/java/com/zy/crm/manager/controller/PlanController.java b/src/main/java/com/zy/crm/manager/controller/PlanController.java index c27f9fb..920f19e 100644 --- a/src/main/java/com/zy/crm/manager/controller/PlanController.java +++ b/src/main/java/com/zy/crm/manager/controller/PlanController.java @@ -225,9 +225,11 @@ public R insertFile(@RequestParam("planId") String planId,@RequestParam MultipartFile file){ try{ InputStream inputStream = file.getInputStream(); + // 鑾峰彇鏂囦欢鐨勫唴瀹圭被鍨� + String contentType = file.getContentType(); String suffix = getFileSuffix(file.getOriginalFilename()); -// String url = ossService.upload(inputStream, suffix); - String url = "http://tjdt.oss-cn-hangzhou.aliyuncs.com/"+file.getOriginalFilename(); + String url = ossService.upload(inputStream, suffix,contentType); +// String url = "http://tjdt.oss-cn-hangzhou.aliyuncs.com/"+file.getOriginalFilename(); String[] names = url.split("com/"); String name= names[1]; String[] split = planId.split("-"); @@ -298,7 +300,7 @@ @RequestMapping(value = "/plan/download/file/auth") // @ManagerAuth - public void downloadFile(@RequestParam("downloadUrl") String downloadUrl,HttpServletResponse response){ + public R downloadFile(@RequestParam("downloadUrl") String downloadUrl,HttpServletResponse response){ // System.out.println("---寮�濮�---"); // MultipartFile try{ @@ -306,10 +308,12 @@ String name= names[1]; // ResponseEntity<Resource> resourceResponseEntity = FileSaveExampleUtil.downloadFile(downloadUrl, response); // return R.ok(resourceResponseEntity); - ossService.download(name); + String download = ossService.download(name); + return R.ok().add(download); }catch (Exception e){ } + return R.error(); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 88bc5ac..bb73508 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -17,7 +17,7 @@ name: @pom.build.finalName@ datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://localhost:1433;databasename=zy_crm + url: jdbc:sqlserver://192.168.4.15:1433;databasename=zy_crm username: sa password: sa@123 # url: jdbc:sqlserver://47.97.1.152:51433;databasename=zy_crm @@ -55,9 +55,9 @@ aliyun: oss: - id: LTAI4GDzr6ioSHuRw2mk22ug - secret: 84CHL7tF21LbU1qpaP0jn9mIAZP9bv - bucket: tjdt + id: LTAI5tB2wHvhak9xLkHrJb9r + secret: RgUbOIWFmydPXVNI4w4EviuSPoysIa + bucket: zhongyang-ftpserver endpoint: http://oss-cn-hangzhou.aliyuncs.com db: diff --git a/src/main/webapp/static/js/plan/plan.js b/src/main/webapp/static/js/plan/plan.js index dc02841..5997956 100644 --- a/src/main/webapp/static/js/plan/plan.js +++ b/src/main/webapp/static/js/plan/plan.js @@ -586,42 +586,43 @@ // 鐐瑰嚮涓嬭浇鎸夐挳鏃惰Е鍙戞枃浠朵笅杞� $('#data-btn-file3').on('click', 'a', function() { + var downloadUrl = $(this).attr('href'); + // console.log(downloadUrl) + // console.log(baseUrl) + // window.open("/\//"+downloadUrl); + // return false; // var downloadUrl = $(this).attr('href'); // console.log(downloadUrl) - // // console.log(baseUrl) - // // window.open("/\//"+downloadUrl); - // // return false; - // // var downloadUrl = $(this).attr('href'); - // // console.log(downloadUrl) - // // // 鍙戣捣 AJAX 璇锋眰锛岃幏鍙栨枃浠� - // $.ajax({ - // url: '/plan/download/file/auth', - // type: 'POST', - // data: { downloadUrl: downloadUrl }, // 浼犻�掍笅杞介摼鎺ヤ綔涓哄弬鏁� - // success: function(response) { - // // console.log(response) - // // // window.open(baseUrl+response.msg) - // // // 鍒涘缓涓�涓狟lob瀵硅薄 - // // var blob = new Blob([response]); - // // // 浣跨敤FileSaver淇濆瓨鏂囦欢 - // // var fileName = downloadUrl.substring(downloadUrl.lastIndexOf('\\') + 1); - // // console.log(fileName) - // // saveAs(blob, fileName); + // // 鍙戣捣 AJAX 璇锋眰锛岃幏鍙栨枃浠� + $.ajax({ + url: '/plan/download/file/auth', + type: 'POST', + data: { downloadUrl: downloadUrl }, // 浼犻�掍笅杞介摼鎺ヤ綔涓哄弬鏁� + success: function(response) { + console.log(response) + layer.msg(response.msg+',宸蹭笅杞借嚦榛樿璺緞锛佽缁嗕笅杞借矾寰勶細'+response.data, {icon: 1}); + // // window.open(baseUrl+response.msg) + // // 鍒涘缓涓�涓狟lob瀵硅薄 + // var blob = new Blob([response]); + // // 浣跨敤FileSaver淇濆瓨鏂囦欢 + // var fileName = downloadUrl.substring(downloadUrl.lastIndexOf('\\') + 1); + // console.log(fileName) + // saveAs(blob, fileName); // return false; - // }, - // error: function() { - // layer.msg('璇锋眰鏂囦欢涓嬭浇澶辫触'); - // } - // }); - var downloadUrl = $(this).attr('href'); - console.log(downloadUrl) - if (downloadUrl == "" || downloadUrl == null) { - layer.msg('璇峰厛涓婁紶app鏂囦欢',{time:1000},() => { - parent.location.reload() - }) - }else{ - window.open(downloadUrl); - } + }, + error: function() { + layer.msg('璇锋眰鏂囦欢涓嬭浇澶辫触'); + } + }); + // var downloadUrl = $(this).attr('href'); + // console.log(downloadUrl) + // if (downloadUrl == "" || downloadUrl == null) { + // layer.msg('璇峰厛涓婁紶app鏂囦欢',{time:1000},() => { + // parent.location.reload() + // }) + // }else{ + // window.open(downloadUrl); + // } return false; // 闃绘榛樿鐨勯摼鎺ヨ烦杞涓� }); -- Gitblit v1.9.1