diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java index cc278f8..3da3b97 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/MallProductController.java @@ -78,7 +78,7 @@ public class MallProductController extends BaseController { /** - * 删除定 + * 删除 */ @PostMapping public AjaxResult remove(@RequestBody IdsParam ids) diff --git a/mcwl-admin/src/main/resources/application.yml b/mcwl-admin/src/main/resources/application.yml index 7cbd9c4..6b28fab 100644 --- a/mcwl-admin/src/main/resources/application.yml +++ b/mcwl-admin/src/main/resources/application.yml @@ -164,14 +164,11 @@ xss: # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/* - - #aliyun-oss -# aliyun: -# oss: -# file: -# endPoint: "http://oss-cn-beijing.aliyuncs.com" // 一般不用改,选择自己的地址即可 -# keyid: "保存的key" -# keyecrets: "保存的secret" -# #bucket可以在控制台创建,也可以使用java代码创建 -# bucketname: "实例名称" - +# yml版(application.yml) +aliyun: + oss: + bucketName: ybl2112 + endpoint: oss-cn-beijing.aliyuncs.com + accessKeyId: LTAI5tSHZZ8wHJRP8X4r9TXT + accessKeySecret: F82IVNx0IGJ3AnP6gSIfcyql1HCXIH + policy : https://ybl2112.oss-cn-beijing.aliyuncs.com/ diff --git a/mcwl-common/pom.xml b/mcwl-common/pom.xml index 10e786e..4d6f7a8 100644 --- a/mcwl-common/pom.xml +++ b/mcwl-common/pom.xml @@ -21,7 +21,7 @@ com.aliyun.oss aliyun-sdk-oss - 3.17.1 + 3.17.4 commons-fileupload @@ -44,13 +44,32 @@ fastdfs-client 1.26.5 - + + javax.xml.bind + jaxb-api + 2.3.1 + + + javax.activation + activation + 1.1.1 + + + + org.glassfish.jaxb + jaxb-runtime + 2.3.3 + org.springframework.boot spring-boot-starter-quartz - + + com.aliyun.oss + aliyun-sdk-oss + 3.17.4 + org.springframework diff --git a/mcwl-common/src/main/java/com/mcwl/common/utils/BeanUtil.java b/mcwl-common/src/main/java/com/mcwl/common/utils/BeanUtil.java deleted file mode 100644 index 1a1d185..0000000 --- a/mcwl-common/src/main/java/com/mcwl/common/utils/BeanUtil.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. - * - * https://www.mall4j.com/ - * - * 未经允许,不可做商业用途! - * - * 版权所有,侵权必究! - */ -package com.mcwl.common.utils; - - -import com.alibaba.fastjson.JSONObject; - -import java.util.List; - -/** - * 对象转换工具类 - */ -public class BeanUtil { - public static List mapAsList(final Iterable sourceObject, Class clazz) { - return JSONObject.parseArray(JSONObject.toJSONString(sourceObject), clazz); - } - public static D map(final S sourceObject, Class clazz) { - return JSONObject.parseObject(JSONObject.toJSONString(sourceObject), clazz); - } -} diff --git a/mcwl-common/src/main/java/com/mcwl/common/utils/oss/OssUtil.java b/mcwl-common/src/main/java/com/mcwl/common/utils/oss/OssUtil.java new file mode 100644 index 0000000..ba085b7 --- /dev/null +++ b/mcwl-common/src/main/java/com/mcwl/common/utils/oss/OssUtil.java @@ -0,0 +1,153 @@ +package com.mcwl.common.utils.oss; + +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.model.GetObjectRequest; +import com.aliyun.oss.model.PutObjectRequest; +import lombok.extern.log4j.Log4j2; +import org.springframework.web.multipart.MultipartFile; + +import java.io.*; +import java.time.LocalDateTime; +import java.util.UUID; + +/** + * Oss服务调用 + */ +@Log4j2 +public class OssUtil { + + /** + * Endpoint 存储对象概述 阿里云主账号AccessKey,accessKeySecret拥有所有API的访问权限 访问路径前缀 存储对象概述 + */ + private static String endPoint = "oss-cn-beijing.aliyuncs.com"; + private static String accessKeyId = "LTAI5tSHZZ8wHJRP8X4r9TXT"; + private static String accessKeySecret = "F82IVNx0IGJ3AnP6gSIfcyql1HCXIH"; + private static String accessPre = "https://ybl2112.oss-cn-beijing.aliyuncs.com/"; + + /** + * bucket名称 + * @return + */ + private static String bucketName = "ylb2112"; + + private static OSS ossClient ; + + static { + ossClient = new OSSClientBuilder().build( + endPoint, + accessKeyId, + accessKeySecret); + log.info("oss服务连接成功!"); + } + + /** + * 默认路径上传本地文件 + * @param filePath + */ + public static String uploadFile(String filePath){ + return uploadFileForBucket(bucketName,getOssFilePath(filePath) ,filePath); + } + + /** + * 默认路径上传multipartFile文件 + * @param multipartFile + */ + public static String uploadMultipartFile(MultipartFile multipartFile) { + return uploadMultipartFile(bucketName,getOssFilePath(multipartFile.getOriginalFilename()),multipartFile); + } + /** + * 上传 multipartFile 类型文件 + * @param bucketName + * @param ossPath + * @param multipartFile + */ + public static String uploadMultipartFile(String bucketName , String ossPath , MultipartFile multipartFile){ + InputStream inputStream = null; + try { + inputStream = multipartFile.getInputStream(); + } catch (IOException e) { + e.printStackTrace(); + } + uploadFileInputStreamForBucket(bucketName, ossPath, inputStream); + return accessPre+ossPath; + } + + /** + * 使用File上传PutObject上传文件 ** 程序默认使用次方法上传 + * @param bucketName 实例名称 + * @param ossPath oss存储路径 + * @param filePath 本地文件路径 + */ + public static String uploadFileForBucket(String bucketName , String ossPath , String filePath) { + // 创建PutObjectRequest对象。 + PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, ossPath, new File(filePath)); + + // 上传 + ossClient.putObject(putObjectRequest); + return accessPre+ossPath; + } + + /** + * 使用文件流上传到指定的bucket实例 + * @param bucketName 实例名称 + * @param ossPath oss存储路径 + * @param filePath 本地文件路径 + */ + public static String uploadFileInputStreamForBucket(String bucketName , String ossPath , String filePath){ + + // 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。 + InputStream inputStream = null; + try { + inputStream = new FileInputStream(filePath); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + // 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。 + uploadFileInputStreamForBucket(bucketName, ossPath, inputStream); + return accessPre+ossPath; + } + + public static void uploadFileInputStreamForBucket(String bucketName , String ossPath , InputStream inputStream ){ + ossClient.putObject(bucketName, ossPath, inputStream); + } + + /** + * 下载 + * @param ossFilePath + * @param filePath + */ + public static void downloadFile(String ossFilePath , String filePath ){ + downloadFileForBucket(bucketName , ossFilePath , filePath); + } + /** + * 下载 + * @param bucketName 实例名称 + * @param ossFilePath oss存储路径 + * @param filePath 本地文件路径 + */ + public static void downloadFileForBucket(String bucketName , String ossFilePath , String filePath ){ + ossClient.getObject(new GetObjectRequest(bucketName, ossFilePath), new File(filePath)); + } + + /** + * + * @return + */ + public static String getOssDefaultPath(){ + LocalDateTime now = LocalDateTime.now(); + String url = + now.getYear()+"/"+ + now.getMonth()+"/"+ + now.getDayOfMonth()+"/"+ + now.getHour()+"/"+ + now.getMinute()+"/"; + return url; + } + + public static String getOssFilePath(String filePath){ + String fileSuf = filePath.substring(filePath.indexOf(".") + 1); + return getOssDefaultPath() + UUID.randomUUID().toString() + "." + fileSuf; + } + +}