OSS上传图片并返回图片地址工具类
OSS上传图片并且返回地址工具类 可以直接拿去用 后续会继续更新
需要注意的点:
下面代码里的@Value里的几个值我是放在application.yml文件里的,可以在OSS官网上找到,放入自己的OSS数据值,可以百度OSS管理控制台
aliyun:
endpoint:
accessKeyId:
accessKeySecret:
bucketName:
accessUrl:
package com.test.utils;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectResult;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.Random;
@Component
public class OSSUtils {
@Value("${aliyun.endpoint}")
private String endpoint;
@Value("${aliyun.accessKeyId}")
private String accessKeyId;
@Value("${aliyun.accessKeySecret}")
private String accessKeySecret;
@Value("${aliyun.bucketName}")
private String bucketName;
@Value("${aliyun.accessUrl}")
private String accessUrl;
private String filedir = "xc-test/";//上传路径OSS
//上传图片并返回地址
public String upload(MultipartFile file){
String name = new Random().nextInt(10000) + System.currentTimeMillis()+".jpeg";
try {
InputStream inputStream = file.getInputStream();
String path = "";
try {
OSS oss = new OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);
PutObjectResult putResult = oss.putObject(bucketName,filedir + name,inputStream);
path = accessUrl + filedir+name;
}catch (Exception e){
e.printStackTrace();
}finally {
if (inputStream != null) {
inputStream.close();
}
}
return path;
} catch (IOException e) {
e.printStackTrace();
}
return "error";
}
}