From 5e07f160bb34e72186607556fff8841688a1f47a Mon Sep 17 00:00:00 2001
From: baizonghao <1719256278@qq.com>
Date: 星期六, 04 三月 2023 00:01:09 +0800
Subject: [PATCH] 阿里云测试
---
ycl-common/src/main/java/com/ycl/controller/FileController.java | 31 ++++++++-
ycl-smoke/src/main/resources/application.yml | 2
ycl-platform/src/main/resources/application-dev.yml | 9 ++
ycl-platform/src/main/resources/application-prod.yml | 2
ycl-platform/src/main/java/com/ycl/dto/video/AlarmDataParam.java | 2
pom.xml | 12 ++++
ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java | 81 +++++++++++++++++++++++++++
7 files changed, 129 insertions(+), 10 deletions(-)
diff --git a/pom.xml b/pom.xml
index 64fefc5..5b27209 100644
--- a/pom.xml
+++ b/pom.xml
@@ -196,6 +196,18 @@
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
+
+
+ <dependency>
+ <groupId>com.aliyun.oss</groupId>
+ <artifactId>aliyun-sdk-oss</artifactId>
+ <version>3.16.1</version>
+ </dependency>
+ <dependency>
+ <groupId>joda-time</groupId>
+ <artifactId>joda-time</artifactId>
+ <version>2.12.2</version>
+ </dependency>
</dependencies>
</project>
diff --git a/ycl-common/src/main/java/com/ycl/controller/FileController.java b/ycl-common/src/main/java/com/ycl/controller/FileController.java
index f0f1623..73eeb9e 100644
--- a/ycl-common/src/main/java/com/ycl/controller/FileController.java
+++ b/ycl-common/src/main/java/com/ycl/controller/FileController.java
@@ -3,6 +3,7 @@
import com.ycl.api.CommonResult;
import com.ycl.dto.media.Media;
import com.ycl.dto.media.PictureZoomParameter;
+import com.ycl.utils.AliyunUtils;
import com.ycl.utils.MediaFileUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -10,12 +11,17 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
+import java.io.InputStream;
+
@RestController
@Api(tags = "鏂囦欢涓婁紶")
@RequestMapping("/file")
public class FileController {
private MediaFileUtil mediaFileUtil;
+
+ @Autowired
+ private AliyunUtils aliyunUtils;
@Autowired
public void setMediaFileUtil(MediaFileUtil mediaFileUtil) {
@@ -29,17 +35,32 @@
* @return
*/
+// @ApiOperation("涓婁紶鍥剧墖")
+// @RequestMapping(value = "/medias", method = RequestMethod.POST)
+// public CommonResult<Media> mediaUpload(@RequestParam("file") MultipartFile file) {
+// try {
+// PictureZoomParameter zoomPar = PictureZoomParameter.getBoardPar();
+// Media res = mediaFileUtil.save(file, zoomPar);
+//
+// return CommonResult.success(res, "ok");
+// } catch (Exception e) {
+// return CommonResult.failed("鍥剧墖鏍煎紡鍙兘涓簀pg銆乯peg銆乸ng,鍙慨鏀规枃浠剁殑鍚庣紑鏃犳晥!");
+// }
+// }
+
@ApiOperation("涓婁紶鍥剧墖")
@RequestMapping(value = "/medias", method = RequestMethod.POST)
- public CommonResult<Media> mediaUpload(@RequestParam("file") MultipartFile file) {
+ public CommonResult<String> mediaUpload(@RequestParam("file") MultipartFile file) {
try {
- PictureZoomParameter zoomPar = PictureZoomParameter.getBoardPar();
- Media res = mediaFileUtil.save(file, zoomPar);
-
+ InputStream inputStream = file.getInputStream();
+ String orginalFileName = file.getOriginalFilename();
+ String res = aliyunUtils.upload(inputStream, orginalFileName);
return CommonResult.success(res, "ok");
} catch (Exception e) {
- return CommonResult.failed("鍥剧墖鏍煎紡鍙兘涓簀pg銆乯peg銆乸ng,鍙慨鏀规枃浠剁殑鍚庣紑鏃犳晥!");
+
+ e.printStackTrace();
}
+ return CommonResult.failed("鍥剧墖鏍煎紡鍙兘涓簀pg銆乯peg銆乸ng,鍙慨鏀规枃浠剁殑鍚庣紑鏃犳晥!");
}
@ApiOperation("鍒犻櫎鍥剧墖")
diff --git a/ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java b/ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java
new file mode 100644
index 0000000..fa3b84e
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java
@@ -0,0 +1,81 @@
+package com.ycl.utils;
+
+import com.aliyun.oss.ClientException;
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.OSSClientBuilder;
+import com.aliyun.oss.OSSException;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.io.InputStream;
+import java.util.UUID;
+
+@Component
+public class AliyunUtils {
+ private static String endpoint;
+ private static String keyId;
+ private static String keySecret;
+ private static String bucketName;
+
+ @Value("${aliyun.oss.endpoint}")
+ public void setEndpoint(String endpoint) {
+ AliyunUtils.endpoint = endpoint;
+ }
+ @Value("${aliyun.oss.keyId}")
+ public void setKeyId(String keyId) {
+ AliyunUtils.keyId = keyId;
+ }
+ @Value("${aliyun.oss.keySecret}")
+ public void setKeySecret(String keySecret) {
+ AliyunUtils.keySecret = keySecret;
+ }
+ @Value("${aliyun.oss.bucketName}")
+ public void setBucketName(String bucketName) {
+ AliyunUtils.bucketName = bucketName;
+ }
+
+ 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 static void delete(String link){
+ if (link == null || link.equals("")) {
+ return;
+ }
+
+ OSS ossClient = new OSSClientBuilder().build(endpoint, keyId, keySecret);
+ try {
+ ossClient.deleteObject(bucketName, link);
+ } 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();
+ }
+ }
+ }
+
+
+
+}
diff --git a/ycl-platform/src/main/java/com/ycl/dto/video/AlarmDataParam.java b/ycl-platform/src/main/java/com/ycl/dto/video/AlarmDataParam.java
index 92a12b4..c5de217 100644
--- a/ycl-platform/src/main/java/com/ycl/dto/video/AlarmDataParam.java
+++ b/ycl-platform/src/main/java/com/ycl/dto/video/AlarmDataParam.java
@@ -1,8 +1,6 @@
package com.ycl.dto.video;
-import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
diff --git a/ycl-platform/src/main/resources/application-dev.yml b/ycl-platform/src/main/resources/application-dev.yml
index 469d7c8..babaf60 100644
--- a/ycl-platform/src/main/resources/application-dev.yml
+++ b/ycl-platform/src/main/resources/application-dev.yml
@@ -71,4 +71,11 @@
port: 8281
userName: suichang
passWord: a12345677
- ip: 10.10.10.10
\ No newline at end of file
+ ip: 10.10.10.10
+
+aliyun:
+ oss:
+ endpoint: https://oss-cn-chengdu.aliyuncs.com
+ keyId: LTAI5tJTmV5pnPKjwvpdjyfi
+ keySecret: HRXGIrDdnhdlvV5AoOB4k9NxYP0G9Z
+ bucketName: baizonghao-upload
diff --git a/ycl-platform/src/main/resources/application-prod.yml b/ycl-platform/src/main/resources/application-prod.yml
index d896614..c8168e6 100644
--- a/ycl-platform/src/main/resources/application-prod.yml
+++ b/ycl-platform/src/main/resources/application-prod.yml
@@ -25,7 +25,7 @@
redis:
database: 0
host: 127.0.0.1
- port: 6379
+ port: 6380
password: ycl2018
jedis:
pool:
diff --git a/ycl-smoke/src/main/resources/application.yml b/ycl-smoke/src/main/resources/application.yml
index aca341d..a5c6f78 100644
--- a/ycl-smoke/src/main/resources/application.yml
+++ b/ycl-smoke/src/main/resources/application.yml
@@ -1,6 +1,6 @@
spring:
profiles:
- active: pro
+ active: dev
main:
allow-circular-references: true
allow-bean-definition-overriding: true
--
Gitblit v1.8.0