一、华为云的使用
1.获取访问秘钥
(1).登录华为云--控制台--我的凭证
(2).访问秘钥--新增访问密钥--下载密钥
(3).获取AK和SK
2.创建桶
(1).创建资源
(2).创建项目
二、代码实现
1.导入依赖
<!--华为云obs-->
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>esdk-obs-java-bundle</artifactId>
<version>3.21.11</version>
</dependency>
2.配置OBS
3.上传文件配置类(FileUploadConfig.java)
@Data
@Component
@ConfigurationProperties(prefix = "huaweicloud.obs")
public class FileUploadConfig {
private String accessKey;
private String secretKey;
private String endPoint;
private String bucketName;
private String path;
@Bean
public ObsClient getInstance(){
return new ObsClient(accessKey,secretKey,endPoint);
}
}
(4).上传工具类
/**
* 文件上传
*/
@Component
public class FileUploadUtils {
@Autowired
public static R fileUpload(MultipartFile file, FileUploadConfig config){
ObsClient obsClient = config.getInstance();
PutObjectResult result=null;
String fileName = file.getOriginalFilename();
fileName = UUID.randomUUID() + fileName.substring(fileName.lastIndexOf("."));
try {
result = obsClient.putObject(config.getBucketName(), fileName,
file.getInputStream());
// 使用预定义访问策略设置对象的访问权限为公共读
obsClient.setObjectAcl(config.getBucketName(), fileName,
AccessControlList.REST_CANNED_PUBLIC_READ);
} catch (IOException e) {
return R.fail();
}finally {
if (obsClient != null){
try {
obsClient.close();
} catch (IOException e) {
return R.fail();
}
}
}
return R.result(0,"上传成功",result);
}
}
(5).控制器
@PostMapping("upload")
public R upload(MultipartFile file){
return FileUploadUtils.fileUpload(file, config);
}
三、总结
该方式可用于图片上传功能,将上传的图片传送到华为桶,目的是节省存储空间,便于查看,同时也可不断紧跟时代潮流,更新自我技术。