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);
    }

springboot使用oss上传

相关文章: