<!-- 文件上传到华为云-->
<dependency>
<groupId>com.huaweicloud</groupId>
<artifactId>esdk-obs-java</artifactId>
<version>3.19.7</version>
</dependency>
public static String uploadFileByCode(String ak, String sk, String endPoint, String bucket, MultipartFile file) {
//String pathname = objectName;
File file1 = transferToFile(file);
try {
ObsClient obsClient = new ObsClient(ak, sk, endPoint);
//判断桶是否存在,不存在则创建
if (!obsClient.headBucket(bucket)) {
obsClient.createBucket(bucket);
}
PutObjectRequest request = new PutObjectRequest();
request.setBucketName(bucket);
String substring = file1.getName().substring(0,file1.getName().length() - 3);
request.setObjectKey(substring+".jpg");
request.setFile(file1);
request.setAcl(AccessControlList.REST_CANNED_PUBLIC_READ);
PutObjectResult result = obsClient.putObject(request);
String url = result.getObjectUrl();
System.out.println("urlceshi"+url);
return url;
} catch (Exception e) {
System.out.print("上传图片失败!");
}
return null;
}
/**
* 将MultipartFile转为file文件
* @param multipartFile
* @return
*/
public static File transferToFile(MultipartFile multipartFile) {
// 选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。
File file = null;
try {
String originalFilename = multipartFile.getOriginalFilename();
String[] filename = originalFilename.split("\\.");
file=File.createTempFile(filename[0], filename[1]);
multipartFile.transferTo(file);
file.deleteOnExit();
} catch (IOException e) {
e.printStackTrace();
}
return file;
}
引入依赖然后复制黏贴就可以了
ak是甲方提供如果自己测试的话就到华为云的控制台进行创建就可以了
sk也是
endPoint 是地址也就是终端地址也是在控制台或者问甲方要就可以了
需要这三个条件就可以将图片上传到华为云了后续会加入删除或者下载目前没用到