spring boot 测试 阿里云上传图片 返回图片地址
第一步 开通阿里云oss服务获得密钥https://www.aliyun.com/product/oss第二步 配置maven依赖<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2
·
第一步 开通阿里云oss服务 获得密钥
https://www.aliyun.com/product/oss
第二步 配置maven依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.1.0</version>
</dependency>
第三步 写入配置文件
endpoint: //配置oss服务
accessKeyId: //配置oss服务
accessKeySecret: //配置oss服务
bucketName: //配置oss服务
第四步 创建一个类 读取配置文件内容
@Component
public class ConstantOssInfo implements InitializingBean {
@Value("${aliyun.oss.endpoint}")
private String endpoint;
@Value("${aliyun.oss.accessKeyId}")
private String accessKeyId;
@Value("${aliyun.oss.accessKeySecret}")
private String accessKeySecret;
@Value("${aliyun.oss.bucketName}")
private String bucketName;
public static String ENDPOINT;
public static String ACCESSKEYID;
public static String ACCESSKEYSECRET;
public static String BUCKETNAME;
@Override
public void afterPropertiesSet() throws Exception {
ENDPOINT=endpoint;
ACCESSKEYID=accessKeyId;
ACCESSKEYSECRET=accessKeySecret;
BUCKETNAME=bucketName;
}
}
创建service类 实现上传
@Service
public class OssServiceImpl implements OssService {
@Override
public String upload(MultipartFile file) {
//通过工具类中的属性 返回oss对象
OSS oss = new OSSClientBuilder().build(ConstantOssInfo.ENDPOINT, ConstantOssInfo.ACCESSKEYID, ConstantOssInfo.ACCESSKEYSECRET);
// 通过时间戳 防止图片重名,导致图片覆盖
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY/MM/dd");
String dateString = dateFormat.format(date);
long time = new Date().getTime();
String url=null;
String fileName=dateString + "/" + time + file.getOriginalFilename();
System.out.println(fileName);
//获取文件流
try(InputStream in = file.getInputStream()) {
//上传图片
oss.putObject(ConstantOssInfo.BUCKETNAME,fileName, in);
//通过阿里云控制台查看,获得上传的图片地址,自己拼接地址,返回
//https://edu-liuchao.oss-cn-chengdu.aliyuncs.com/2020/08/29/15986964850883.jpg
url="https://"+ConstantOssInfo.BUCKETNAME+"."+ConstantOssInfo.ENDPOINT+"/"+fileName;
} catch (IOException e) {
e.printStackTrace();
//出现异常,通过自定义异常处理
throw new CustomException(20001,"文件上传失败");
}
return url;
}
}
创建controller类 通过swagger2测试
@Controller
@RequestMapping("/oss")
public class aliyunupload {
@Autowired
private OssService ossService;
@PostMapping("/upload")
public String upload(MultipartFile file){
String url=ossService.upload(file);
return url;
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)