diff --git a/weblog-springboot/pom.xml b/weblog-springboot/pom.xml
index c40c7615e82e67a9d59028c0f1bd4e8fb6e21d15..28ac1fece3640832e9c68bb655682d863874b888 100644
--- a/weblog-springboot/pom.xml
+++ b/weblog-springboot/pom.xml
@@ -30,6 +30,11 @@
8.2.1
0.62.2
2.7.0
+ 3.10.2
+ 3.0.2
+ 1.9.4
+ 2.3.1
+ 1.2.76
${java.version}
@@ -53,6 +58,35 @@
+
+
+ org.aspectj
+ aspectjrt
+ ${aspectj}
+
+
+
+ org.aspectj
+ aspectjweaver
+ ${aspectj}
+
+
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ ${aliyun.sdk.oss}
+
+
+ com.alibaba
+ fastjson
+ ${fastjson}
+
+
+ javax.xml.bind
+ jaxb-api
+ ${jaxb-api}
+
com.quanxiaoha
weblog-module-common
diff --git a/weblog-springboot/weblog-module-admin/pom.xml b/weblog-springboot/weblog-module-admin/pom.xml
index 6d592476215572b97953a2f73ea4044dbe5fd316..ae0909ba73497d3d3e902f763bf30b7fb929b89b 100644
--- a/weblog-springboot/weblog-module-admin/pom.xml
+++ b/weblog-springboot/weblog-module-admin/pom.xml
@@ -14,6 +14,20 @@
+
+ com.alibaba
+ fastjson
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+
+
+ javax.xml.bind
+ jaxb-api
+
+
+
com.quanxiaoha
weblog-module-common
diff --git a/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/config/AliOssProperties.java b/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/config/AliOssProperties.java
new file mode 100644
index 0000000000000000000000000000000000000000..f072f654fc74befaeb69970f75fc9e2b56408588
--- /dev/null
+++ b/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/config/AliOssProperties.java
@@ -0,0 +1,18 @@
+package com.quanxiaoha.weblog.admin.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Component
+@ConfigurationProperties(prefix = "alioss")
+@Data
+public class AliOssProperties {
+
+ private String endpoint;
+ private String accessKeyId;
+ private String accessKeySecret;
+ private String bucketName;
+ private String filePrefix;
+
+}
diff --git a/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/config/OssConfiguration.java b/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/config/OssConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..46846ee8e2707976a10e1cab61bc9882f0fa9d17
--- /dev/null
+++ b/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/config/OssConfiguration.java
@@ -0,0 +1,26 @@
+package com.quanxiaoha.weblog.admin.config;
+
+
+import com.quanxiaoha.weblog.admin.utils.AliOssUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 配置类,创建AliOssUtil对象
+ */
+@Configuration
+@Slf4j
+public class OssConfiguration {
+ @Bean
+ @ConditionalOnMissingBean
+ public AliOssUtil aliOssUti(AliOssProperties aliOssProperties) {
+ log.info("阿里云oss配置对象{}", aliOssProperties);
+ return new AliOssUtil(aliOssProperties.getEndpoint(),
+ aliOssProperties.getAccessKeyId(),
+ aliOssProperties.getAccessKeySecret(),
+ aliOssProperties.getBucketName(),
+ aliOssProperties.getFilePrefix());
+ }
+}
diff --git a/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/service/impl/AdminFileServiceImpl.java b/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/service/impl/AdminFileServiceImpl.java
index 72ef9b4b1e954c05c1683850cc243790a7564c55..e252c60cd8ed66f903403370681018be3b163d8a 100644
--- a/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/service/impl/AdminFileServiceImpl.java
+++ b/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/service/impl/AdminFileServiceImpl.java
@@ -1,7 +1,9 @@
package com.quanxiaoha.weblog.admin.service.impl;
+import com.quanxiaoha.weblog.admin.config.AliOssProperties;
import com.quanxiaoha.weblog.admin.model.vo.file.UploadFileRspVO;
import com.quanxiaoha.weblog.admin.service.AdminFileService;
+import com.quanxiaoha.weblog.admin.utils.AliOssUtil;
import com.quanxiaoha.weblog.admin.utils.MinioUtil;
import com.quanxiaoha.weblog.common.Response;
import com.quanxiaoha.weblog.common.enums.ResponseCodeEnum;
@@ -11,6 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
+import java.util.UUID;
+
/**
* @author: 犬小哈
* @url: www.quanxiaoha.com
@@ -23,15 +27,33 @@ public class AdminFileServiceImpl implements AdminFileService {
@Autowired
private MinioUtil minioUtil;
+ @Autowired
+ private AliOssUtil aliOssUtil;
@Override
public Response uploadFile(MultipartFile file) {
+ String url = null;
try {
- String url = minioUtil.uploadFile(file);
+ String originalFilename = file.getOriginalFilename();
+ String end = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
+ String fileName = UUID.randomUUID().toString() + "." + end;
+ byte[] image = file.getBytes();
+ url = aliOssUtil.upload(image, fileName);
return Response.success(UploadFileRspVO.builder().url(url).build());
} catch (Exception e) {
log.error("==> 上传文件异常: ", e);
throw new BizException(ResponseCodeEnum.UPLOAD_FILE_ERROR);
}
}
+ // @Override
+// public Response uploadFile(MultipartFile file) {
+// try {
+// String url = minioUtil.uploadFile(file);
+// return Response.success(UploadFileRspVO.builder().url(url).build());
+// } catch (Exception e) {
+// log.error("==> 上传文件异常: ", e);
+// throw new BizException(ResponseCodeEnum.UPLOAD_FILE_ERROR);
+// }
+// }
+
}
diff --git a/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/utils/AliOssUtil.java b/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/utils/AliOssUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..1e2a272adfb5a45f29ae020837d1586c833c5f57
--- /dev/null
+++ b/weblog-springboot/weblog-module-admin/src/main/java/com/quanxiaoha/weblog/admin/utils/AliOssUtil.java
@@ -0,0 +1,74 @@
+package com.quanxiaoha.weblog.admin.utils;
+
+import com.aliyun.oss.ClientException;
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.OSSClientBuilder;
+import com.aliyun.oss.OSSException;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.ByteArrayInputStream;
+
+@Data
+@AllArgsConstructor
+@Slf4j
+
+public class AliOssUtil {
+
+ private String endpoint;
+ private String accessKeyId;
+ private String accessKeySecret;
+ private String bucketName;
+ private String filePrefix;
+
+ /**
+ * 文件上传
+ *
+ * @param bytes
+ * @param objectName
+ * @return
+ */
+ public String upload(byte[] bytes, String objectName) {
+
+ // 创建OSSClient实例。
+ OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+ //拼接文件夹名称
+ String newObjectName = filePrefix + "/" + objectName;
+ try {
+ // 创建PutObject请求。
+ ossClient.putObject(bucketName, newObjectName, new ByteArrayInputStream(bytes));
+ } catch (OSSException oe) {
+ System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ + "but was rejected with an error response for some reason.");
+ System.out.println("Error Message:" + oe.getErrorMessage());
+ System.out.println("Error Code:" + oe.getErrorCode());
+ System.out.println("Request ID:" + oe.getRequestId());
+ System.out.println("Host ID:" + oe.getHostId());
+ } catch (ClientException ce) {
+ System.out.println("Caught an ClientException, which means the client encountered "
+ + "a serious internal problem while trying to communicate with OSS, "
+ + "such as not being able to access the network.");
+ System.out.println("Error Message:" + ce.getMessage());
+ } finally {
+ if (ossClient != null) {
+ ossClient.shutdown();
+ }
+ }
+
+ //文件访问路径规则 https://BucketName.Endpoint/ObjectName
+ StringBuilder stringBuilder = new StringBuilder("https://");
+ stringBuilder
+ .append(bucketName)
+ .append(".")
+ .append(endpoint)
+ .append("/")
+ .append(filePrefix)
+ .append("/")
+ .append(objectName);
+
+ log.info("文件上传到:{}", stringBuilder.toString());
+
+ return stringBuilder.toString();
+ }
+}
diff --git a/weblog-springboot/weblog-web/src/main/resources/application.yaml b/weblog-springboot/weblog-web/src/main/resources/application.yaml
index dcff4d85b6281d425de53444fc780ff7a05cb31c..e0293766c1ee82c5b4525509253c3c493038b442 100644
--- a/weblog-springboot/weblog-web/src/main/resources/application.yaml
+++ b/weblog-springboot/weblog-web/src/main/resources/application.yaml
@@ -40,4 +40,12 @@ minio:
# IP归属地信息库文件路径 ip2region.xdb
#=================================================================
xdb:
- profile: xxx
\ No newline at end of file
+ profile: xxx
+
+
+alioss:
+ endpoint:
+ accessKeyId:
+ accessKeySecret:
+ bucketName:
+ file-prefix:
\ No newline at end of file