通用附件上传

3.4.0版本开始,把附件上传功能剥离为独立的jar包,方便在各自微服务中使用(解决有些需要在微服务中本地上传的业务场景)。

为了区分上传附件的业务类型,新版本增加了业务类型配置,可以配置不同的业务类型

提供统一的上传附件工具。

目前有9种上传方式:

  • 上传到本地(上传到本地文件夹)
  • 腾讯云对象存储
  • 阿里云对象存储
  • 又拍云对象存储
  • 七牛云对象存储
  • 华为云对象存储
  • ucloud对象存储
  • aws s3
  • 百度云对象存储

httpAccessPath必须可以访问到上传的地址,可以是映射等域名

引入工具包

<dependency>
  <groupId>com.wueasy</groupId>
  <artifactId>wueasy-file</artifactId>
  <version>最新版本</version>
</dependency>

多业务配置

可以配置多个不同的业务信息,通过不同的业务,上传至不同的文件位置。

wueasy :
  file: 
    demo: #业务1
      upload : #上传配置
        type: bos #上传类型 
        rootPath: D:/file #文件上传根目录
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath: https://wueasy.cdn.bcebos.com  #http访问的路径
        imageAutoZip: true #图片是否自动压缩,true是,默认false
        imageQuality: 0.5 #图片质量,默认0.5
      os : #对象存储配置
        secretId : 
        secretKey : 
        bucketName :  #存储桶名称
        region :  #设置bucket的区域
    demo2: #业务2
      upload: #上传配置
        type: local #上传类型 
        rootPath: D:/file #文件上传根目录
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath: http://127.0.0.1:1000  #http访问的路径
        imageAutoZip: true #图片是否自动压缩,true是,默认false
        imageQuality: 0.5 #图片质量,默认0.5

设置主上传配置(默认上传配置)

当通过业务类型获取不到配置信息,会使用默认配置。

  • primary:主要的,默认的,可以指定,如果未指定,默认第一个
wueasy :
  file :
    demo: #业务类型
      primary: true

设置允许上传的文件类型

  • allowedUploadSuffix: 设置允许上传的文件类型,多个逗号分隔
wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        allowedUploadSuffix: #设置允许上传的文件类型,多个逗号分隔

配置上传文件大小

  • maxSize:上传的文件最大大小限制,单位M,默认100M
  • imageMaxSize:上传的图片最大大小限制,单位M,默认50M,3.3.0新增
wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        maxSize: 100 #上传的文件最大大小限制,单位M,默认100M
        imageMaxSize: 50 #上传的图片最大大小限制,单位M,默认50M,

图片压缩

提供图片自动压缩处理,减少访问流量,支持以下几种图片压缩(jpg|jpeg|png)

wueasy:
  file:
    demo: #业务类型
      upload : #上传配置
        imageAutoZip: false #图片是否自动压缩,true是,默认false
        imageQuality: 0.2 #图片质量,默认0.5

上传到本地

把附件上传到本地文件夹中。

修改配置文件:

  • rootPath:本地文件夹的根目录,附件会上传到此文件夹
  • maxSize:上传的文件最大大小限制,单位M,默认100M
  • imageMaxSize:上传的图片最大大小限制,单位M,默认50M,
  • httpAccessPath:http访问的根路径,配置后,文件返回的地址,会自动加上此路径
wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        type: LOCAL
        rootPath: D:/file #文件上传根目录
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath:   #http访问的路径

上传到腾讯云对象存储

修改配置文件:

  • maxSize:上传的文件最大大小,单位M
  • httpAccessPath:http访问的根路径,这里通常配置腾讯云对象存储访问的地址

  • secretId:APPID

  • secretKey:APP密钥
  • bucketName:bucket 的命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式
  • region:设置bucket的区域, COS地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        type: COS
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath: https://hao54.oss-cn-hangzhou.aliyuncs.com  #http访问的路径
      os : #对象存储配置
        secretId :
        secretKey :
        bucketName : test-1251238510 #bucket 的命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式
        region : ap-shanghai #设置bucket的区域, COS地域的简称请参照 https://cloud.tencent.com/document/product/436/6224

上传到阿里云对象存储

修改配置文件:

wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        type: OSS
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath: https://hao54.oss-cn-hangzhou.aliyuncs.com  #http访问的路径
      os : #对象存储配置
        secretId :
        secretKey :
        bucketName : hao54 #bucket 的命名规则为{name} ,此处填写的存储桶名称必须为此格式
        region :  https://oss-cn-hangzhou.aliyuncs.com #设置bucket的区域, COS地域的简称请参照 https://help.aliyun.com/document_detail/31837.html?spm=a2c4g.11186623.6.571.3ac87f5e7vtneC

上传到又拍云对象存储

修改配置文件:

  • maxSize:上传的文件最大大小,单位M
  • httpAccessPath:http访问的根路径,这里通常配置阿里云对象存储访问的地址

  • secretId:操作员名称

  • secretKey:密码
  • bucketName:空间名称
wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        type: USS
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath: https://hao54.oss-cn-hangzhou.aliyuncs.com  #http访问的路径
      os : #对象存储配置
        secretId :
        secretKey :
        bucketName : hao54

上传到七牛云对象存储

修改配置文件:

  • maxSize:上传的文件最大大小,单位M
  • httpAccessPath:http访问的根路径,这里通常配置阿里云对象存储访问的地址

  • secretId:操作员名称

  • secretKey:密码
  • bucketName:空间名称
  • region:机房区域,huadong 华东,huabei 华北,huanan 华南,beimei 北美,xinjiapo 东南亚
wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        type: KODO
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath: https://hao54.oss-cn-hangzhou.aliyuncs.com  #http访问的路径
      os : #对象存储配置
        secretId:
        secretKey:  
        bucketName: fallsea
        region: zone0

上传到华为云对象存储

修改配置文件:

  • maxSize:上传的文件最大大小,单位M
  • httpAccessPath:http访问的根路径,这里通常配置阿里云对象存储访问的地址

  • secretId:操作员名称

  • secretKey:密码
  • bucketName:空间名称
  • region:Endpoint配置, OBS为每个区域提供Endpoint,用于处理各自区域的访问请求。
wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        type: OBS
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath: https://hao54.oss-cn-hangzhou.aliyuncs.com  #http访问的路径
      os : #对象存储配置
        secretId :
        secretKey :
        bucketName : wueasy #存储桶名称
        region: obs.cn-east-2.myhuaweicloud.com

上传到ucloud对象存储

修改配置文件:

  • maxSize:上传的文件最大大小,单位M
  • httpAccessPath:http访问的根路径,这里通常配置阿里云对象存储访问的地址

  • secretId:用户公钥

  • secretKey:用户私钥
  • bucketName:bucket名称
  • region:仓库地区 (eg: 'cn-bj')
wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        type: UFILE
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath: https://hao54.oss-cn-hangzhou.aliyuncs.com  #http访问的路径
      os : #对象存储配置
        secretId :
        secretKey :
        bucketName : wueasy
        region: cn-sh2

上传到aws s3对象存储

修改配置文件:

wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        type: S3
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath: https://wueasy.s3.eu-west-2.amazonaws.com  #http访问的路径
      os : #对象存储配置
        secretId :
        secretKey :
        bucketName : wueasy
        region: eu-west-2

上传到百度云对象存储

修改配置文件:

  • maxSize:上传的文件最大大小,单位M
  • httpAccessPath:http访问的根路径,这里通常配置阿里云对象存储访问的地址

  • secretId:用户的Access Key ID

  • secretKey:用户的Secret Access Key
  • bucketName:空间名称
  • region:机房区域,参考:https://cloud.baidu.com/doc/BOS/s/Ojwvyrpgd
wueasy :
  file :
    demo: #业务类型
      upload : #上传配置
        type: BOS
        maxSize: 50 #文件最大大小,单位M
        httpAccessPath: https://wueasy.cdn.bcebos.com  #http访问的路径
      os : #对象存储配置
        secretId:
        secretKey:  
        bucketName: fallsea
        region: bj.bcebos.com

工具类使用

工具类:com.wueasy.file.util.FileUitl

工具接口

可以通过以下方式进行上传文件处理


/**
* 上传文件
* @author: fallsea
* @param file
* @return
* @throws InvokeException
*/
public static FileEntity upload(File file);

/**
* 上传文件
* @author: fallsea
* @param file
* @param businessType 业务类型
* @return
* @throws InvokeException
*/
public static FileEntity upload(File file,String businessType);

/**
* 上传文件
* @author: fallsea
* @param is
* @param fileName 文件名称
* @return
* @throws InvokeException
*/
public static FileEntity upload(InputStream is,String fileName);

/**
* 上传文件
* @author: fallsea
* @param is
* @param fileName 文件名称
* @param businessType 业务类型
* @return
* @throws InvokeException
*/
public static FileEntity upload(InputStream is,String fileName,String businessType);

/**
* 文件上传
* @author: fallsea
* @param filepath 文件路径
* @return
* @throws InvokeException
*/
public static FileEntity upload(String filepath);

/**
* 文件上传
* @author: fallsea
* @param filepath 文件路径
* @param businessType 业务类型
* @return
* @throws InvokeException
*/
public static FileEntity upload(String filepath,String businessType);
Copyright © wueasy.com 2017-2021 all right reserved,powered by Gitbook未经允许,禁止以任何形式传播 修订时间: 2021-04-18

results matching ""

    No results matching ""