Spring Cloud 阿里云对象存储服务(OSS)使用
①开通阿里云OSS服务,创建Bucket
②创建RAM子用户,记得保存下面的key,后面用nacos config动态配置
1、end_point
2、access_key_id
3、access_key_secret
4、bucket_name
③为RAM子用户添加OSS权限
④引入阿里云sdk(版本自行选择)
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.13.2</version>
</dependency>
⑤创建OSS配置类,应用配置中心(nacos config)动态更新。
nacos配置中心配置(注意空格)
⑥创建Java配置类(记得添加RefreshScope)
@Configuration //配置类注解
@RefreshScope //动态更新注解
@Getter //Lombok
public class OSSPropertiesConfig {
@Value("${zqy.oss.end_point}")
private String endPoint;
@Value("${zqy.oss.access_key_id}")
private String accessKeyId;
@Value("${zqy.oss.access_key_secret}")
private String accessKeySecret;
@Value("${zqy.oss.file_host}")
private String fileHost;
@Value("${zqy.oss.bucket_name}")
private String bucketName;
}
⑦现在就可以在需要的地方使用了,例如
@Service
@Slf4j
public class FileServiceImpl implements FileService {
@Resource
private OSSPropertiesConfig ossPropertiesConfig;
@Override
public String removeFileFromOSS(String filePath) {
//System.out.println(filePath);
//创建oss实例
OSS ossClient = new OSSClientBuilder().build(ossPropertiesConfig.getEndPoint(), ossPropertiesConfig.getAccessKeyId(), ossPropertiesConfig.getAccessKeySecret());
//文件上传至阿里云
ossClient.deleteObject(ossPropertiesConfig.getBucketName(), filePath);
// 关闭OSSClient。
ossClient.shutdown();
log.info("OSS文件删除成功");
return filePath;
}
}