oss上传图片以及删除图片,实用!!!!


前言

废话不多说,亲测有效!!!!

提示:以下是本篇文章正文内容,下面案例可供参考

一、阿里云oss存储配置

直接开通就好了
在这里插入图片描述

二、使用步骤

1.引入库

代码如下(示例):

        <!--阿里云oss-->
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.5.0</version>
        </dependency>
        <!-- 图片处理 -->
        <dependency>
        <groupId>net.coobird</groupId>
        <artifactId>thumbnailator</artifactId>
        <version>0.4.8</version>
        </dependency>

2.Controller层

代码如下(示例):

    @ApiOperation(value = "上传图片oss")
    @PostMapping("/uploadImg")
    @ResponseBody
    public DataResult uploadImgByOss(MultipartFile file)  {
        return DataResult.success(OSSUtils.UploadImgByOss(file));
    }

    @ApiOperation(value = "删除图片oss")
    @PostMapping("/deleteImgByOss")
    public DataResult deleteImgByOss(@RequestParam("fileUrl")String fileUrl)  {
        OSSUtils.delete(fileUrl);
        return DataResult.success();
    }

2.工具类

package com.company.project.common.utils;


import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSClientBuilder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;

@Slf4j
public class OSSUtils {

    private static String endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
    private static String accessKeyId = "";//这里是你的授权KeyId
    private static String accessKeySecret = "";//这里是你的授权秘钥
    private static String bucketName = "images";
    /**
     * OSS的文件夹名
     */
    private static String folder = "image/";//这里是你存放图片的文件夹名
    private static String key = "key";

    /**
     * 上传图片
     *
     */
    public static String UploadImgByOss(MultipartFile file) {
        try{

            //创建OSSClient实例
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

            //获取上传文件输入流
            InputStream inputStream = file.getInputStream();

            //获取文件名称
            String fileName = file.getOriginalFilename();

            //在文件名称里面添加随机唯一的值
            String uuid = CommonUtils.getUUid().toString().replaceAll("-", "");
            fileName = uuid + fileName;

            fileName = folder + fileName;

            ossClient.putObject(bucketName, fileName, inputStream);

            //关闭OSSClient
            ossClient.shutdown();

            //把上传之后文件路径返回
            String url = key+ "/" + fileName;
            return url;
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }

    }
    /**
     * @author 团子
     * @desc 删除文件
     * @date 2019-07-31 11:31
     */
    public static void delete(String objectName) {
        //创建OSSClient实例
        OSSClient  ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);


        // 根据BucketName,objectName删除文件
        ossClient.deleteObject(bucketName, objectName.replace("https://需要去掉的域名前缀.com//",""));
        ossClient.shutdown();
    }
}

总结

提示:这里对文章进行总结:
删除那里之前踩了坑!!!!一定要去掉图片url的前缀!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值