springboot使用oss上传

com.aliyun.oss aliyun-sdk-oss 3.5.0 commons-io commons-io 2.4 commons-fileupload commons-fileupload 1.3.3 application.properties:配置类

##basic setting
server.port = 8080
server.address =127.0.0.1

解除文件大小限制

spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB

OssManagerUtil.java:阿里OSS工具类

/**

  • 阿里Oss对象存储工具类
    */
    public class OssManagerUtil {

    private static String endpoint = “oss中获取的oss公网路径";
    private static String accessKeyId = “自己在阿里云申请的accessKeyId";
    private static String accessKeySecret = “自己在阿里云申请的accessKeySecret”;
    private static String bucket = “bucket名称”;

    private static OSS client;

    static {
    client = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    }

    /**

    • 上传图片
    • @param fileName 图片名称,图片名称包括文件夹名称和“/”
    • @param length 图片大小
    • @param content 输入流
      */
      public static String uploadImage(String fileName, long length, InputStream content) {
      uploadBucketImage(bucket, fileName, length, content);
      return “https://” + bucket + “.” + endpoint + “/” + fileName;
      }

    /**

    • 上传文件
    • @param bucket 存储空间名
    • @param fileName 文件名(包括文件夹名称和“/”)
    • @param length 流的长度
    • @param content 输入流
      */
      public static void uploadBucketImage(String bucket, String fileName, long length, InputStream content) {
      // 创建上传Object的Metadata
      ObjectMetadata meta = new ObjectMetadata();
      // 必须设置ContentLength
      meta.setContentLength(length);
      // 上传Object.
      client.putObject(bucket, fileName, content, meta);
      }

    /**

    • 删除文件
    • @param fileName 文件名称,图片名称包括文件夹名称和“/”
      */
      public static boolean delShopImage(String fileName) {
      //判断文件是否存在
      boolean exist = client.doesObjectExist(bucket, fileName);
      //文件不存在删除失败
      if (!exist) {
      return false;
      }
      //执行删除
      client.deleteObject(bucket, fileName);
      return true;
      }

    /**

    • 获得上传文件后url链接
    • @param fileName 文件名(包括文件夹名称和“/”)
    • @return
      /
      public static String getUrl(String fileName) {
      // 设置URL过期时间为10年 3600l
      100024365*10
      Date expiration = new Date(System.currentTimeMillis() + 3600L * 1000 * 24 * 365 * 10);
      // 生成URL
      URL url = client.generatePresignedUrl(bucket, fileName, expiration);
      if (url != null) {
      return url.toString();
      }
      return null;
      }

    /**

    • 创建存储空间
    • @param bucketName 新建存储空间默认为标准存储类型,私有权限。
    • @return
      */
      public static void crateBucket(String bucketName) {
      // 新建存储空间默认为标准存储类型,私有权限。
      client.createBucket(bucketName);
      }
      }

测试接口:文件上传

/**

  • 文件上传到阿里oss
    */
    @PostMapping("/uploadFiletoOss")
    @ApiOperation(value = “文件上传到阿里oss”)
    public ResponseResult uploadFiletoOss(@RequestParam(“file”)MultipartFile file)throws IOException{
    String fileName = file.getOriginalFilename();
    String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
    fileName = UUID.randomUUID().toString().replace("-", “”) + “.” + suffix;
    String url = OssManagerUtil.uploadImage(fileName,file.getInputStream().available(),file.getInputStream());
    return ResponseResult.success(url);
    }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值