前言
废话不多说,亲测有效!!!!
提示:以下是本篇文章正文内容,下面案例可供参考
一、阿里云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的前缀!!!