baizonghao
2023-03-04 5e07f160bb34e72186607556fff8841688a1f47a
阿里云测试
6个文件已修改
1个文件已添加
137 ■■■■■ 已修改文件
pom.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/controller/FileController.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/dto/video/AlarmDataParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/resources/application-dev.yml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/resources/application-prod.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-smoke/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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("图片格式只能为jpg、jpeg、png,只修改文件的后缀无效!");
//        }
//    }
    @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("图片格式只能为jpg、jpeg、png,只修改文件的后缀无效!");
            e.printStackTrace();
        }
        return CommonResult.failed("图片格式只能为jpg、jpeg、png,只修改文件的后缀无效!");
    }
    @ApiOperation("删除图片")
ycl-common/src/main/java/com/ycl/utils/AliyunUtils.java
New file
@@ -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();
            }
        }
    }
}
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;
/**
ycl-platform/src/main/resources/application-dev.yml
@@ -72,3 +72,10 @@
  userName: suichang
  passWord: a12345677
  ip: 10.10.10.10
aliyun:
  oss:
    endpoint: https://oss-cn-chengdu.aliyuncs.com
    keyId: LTAI5tJTmV5pnPKjwvpdjyfi
    keySecret: HRXGIrDdnhdlvV5AoOB4k9NxYP0G9Z
    bucketName: baizonghao-upload
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:
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