第一步:先配置pom文件
第二步:需要创建一个工具类,用来承装AliOSSUtils类:
@Component /*用于标记一个类作为Spring容器的组件,表示这个类将被Spring扫描并注册为一个Bean */
public class AliOSSUtils {
private String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
private String accessKeyId = "LTAI5t939yghHZH********";
private String accessKeySecret = "FSxX7ZIbtiBpdTtom1U**********";
private String bucketName = "web-********";
// endpoint:地域 accessKeyId:访问凭证ID accessKeySecret:访问凭证密码
//bucketName:bucket名
//均需修改为自己的
/**
* 实现上传图片到OSS
*/
public String upload(MultipartFile file) throws IOException {
// 获取上传的文件的输入流
InputStream inputStream = file.getInputStream();
// 避免文件覆盖
String originalFilename = file.getOriginalFilename();
String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));
//上传文件到 OSS
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, fileName, inputStream);
//文件访问路径
String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;
// 关闭ossClient
ossClient.shutdown();
return url;// 把上传到oss的路径返回
}
}
以下测试功能是否可行:
第三步:
在controller层:
@Slf4j
@RestController
public class UploadController {
@Autowired /*用于自动装配一个对象,可以用在字段、setter方法和构造函数上。Spring会根据类型去容器中找到匹配的对象进行注入 */
private AliOSSUtils aliOSSUtils;
@PostMapping("/upload")
public Result upload(MultipartFile image) throws IOException {
log.info("文件上传,文件名:{}",image.getOriginalFilename());
//调用aliyunOSS工具类
String url = aliOSSUtils.upload(image);
return Result.success(url);
}
}