您的位置 首页 java

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
    1000 24 365*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上传

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:

原作者删帖 不实内容删帖 广告或垃圾文章投诉

文章来源:智云一二三科技

文章标题:springboot使用oss上传

文章地址:https://www.zhihuclub.com/174610.shtml

关于作者: 智云科技

热门文章

网站地图