package com.sinata.core.util.huawei.obs;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.obs.services.ObsClient;
|
import com.sinata.core.config.HuaWeiConfig;
|
import java.io.ByteArrayInputStream;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.util.UUID;
|
|
public class ObsUploadUtil {
|
|
public static final String https = "https://";
|
public static final String endPoint = "obs.cn-southwest-2.myhuaweicloud.com";
|
public static final String bucketName = "meitianmeiya";
|
public static final String obsDomain = https + bucketName + "." + endPoint + "/";
|
|
|
public static String obsUpload(MultipartFile file, String dir) throws IOException {
|
// 文件目录
|
dir = StrUtil.isBlank(dir) ? "img/" : dir + "/";
|
|
// CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
|
String objectName = "";
|
if (file != null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename() != null) {
|
// 创建ObsClient实例
|
ObsClient obsClient = new ObsClient(HuaWeiConfig.AK, HuaWeiConfig.SK, https + endPoint);
|
|
//获得指定文件的输入流
|
InputStream content = file.getInputStream();
|
String originalFilename = file.getOriginalFilename();
|
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
objectName = dir + uuid + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
|
|
// 上传对象至OBS
|
//obsClient.putObject(bucketName, uuid, new ByteArrayInputStream("Hello OBS".getBytes()));
|
obsClient.putObject(bucketName, objectName, content);
|
|
if (objectName != null && !"".equals(objectName)) {
|
objectName = obsDomain + objectName;
|
}
|
|
// 关闭obsClient,全局使用一个ObsClient客户端的情况下,不建议主动关闭ObsClient客户端
|
obsClient.close();
|
}
|
return objectName;
|
}
|
public static String obsUploadInputStream(InputStream is, String dir,String fileName) throws IOException {
|
// 文件目录
|
dir = StrUtil.isBlank(dir) ? "excel/" : dir + "/";
|
|
String objectName = "";
|
// 创建ObsClient实例
|
ObsClient obsClient = new ObsClient(HuaWeiConfig.AK, HuaWeiConfig.SK, https + endPoint);
|
|
//获得指定文件的输入流
|
objectName = dir + fileName;
|
|
// 上传对象至OBS
|
obsClient.putObject(bucketName, objectName, is);
|
|
if (objectName != null && !"".equals(objectName)) {
|
objectName = obsDomain + objectName;
|
}
|
// 关闭obsClient,全局使用一个ObsClient客户端的情况下,不建议主动关闭ObsClient客户端
|
obsClient.close();
|
return objectName;
|
}
|
}
|