package com.stylefeng.guns.modular.account.util;
|
|
import com.obs.services.ObsClient;
|
import com.obs.services.model.ObjectMetadata;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.util.UUID;
|
|
public class OssUploadUtil {
|
//OSS图片访问域名
|
public static String oss_domain = "https://jixichuxing.obs.cn-south-1.myhuaweicloud.com/";
|
public static String accessKeyId = "IWZDAITHHVYR4W3BBPFM";
|
public static String accessKeySecret = "YnGQmmTds5asKMqPkO2GqGDtwT7LP9bS40lYRkMv";
|
public static String bucketName="jixichuxing";
|
public static String endpoint = "obs.cn-south-1.myhuaweicloud.com";
|
/**
|
* base64图片 contentType
|
*/
|
private static final String CONTENT_TYPE = "image/jpg";
|
public static ObsClient obsClient = new ObsClient(accessKeyId, accessKeySecret, endpoint);
|
|
public static String obsUpload(HttpServletRequest request, MultipartFile file) throws IOException{
|
//CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
|
String fileName = "";
|
if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
|
InputStream content = file.getInputStream();//获得指定文件的输入流
|
ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
|
meta.setContentLength(file.getSize()); // 必须设置ContentLength
|
String originalFilename = file.getOriginalFilename();
|
fileName = UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
|
obsClient.putObject(bucketName,"img/"+fileName,content,meta);// 上传Object.
|
if(fileName != null && !"".equals(fileName)){
|
System.out.println(fileName);
|
fileName = oss_domain+"img/"+fileName;
|
}
|
}
|
return fileName;
|
}
|
|
/**
|
*
|
* 上传司机二维码
|
* @param driverId 司机ID
|
* @param content 二维码输入流
|
* @return 二维码地址
|
*/
|
public static String ossUploadByStream(Integer driverId, InputStream content) throws IOException {
|
// 生成唯一的文件名
|
String fileName = "img/"+UUID.randomUUID().toString().replaceAll("-","")+"-driver"+driverId+".png";
|
try {
|
// 设置上传文件的元信息
|
ObjectMetadata metadata = new ObjectMetadata();
|
metadata.setContentLength((long) content.available()); // 设置文件长度
|
//metadata.setContentType("image/jpg"); // 设置文件类型为PNG图片
|
// 上传文件流到OSS
|
obsClient.putObject(bucketName, fileName, content,metadata);
|
// 返回上传后的文件名
|
return oss_domain + fileName;
|
} catch (IOException e) {
|
e.printStackTrace();
|
return null;
|
} finally {
|
// 关闭OSS客户端
|
obsClient.close();
|
}
|
}
|
}
|