package com.stylefeng.guns.modular.account.util; import cn.hutool.core.util.IdUtil; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClient; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectRequest; import com.aliyun.oss.model.PutObjectResult; 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://jiayixing-bucket.oss-cn-beijing.aliyuncs.com/"; public static String accessKeyId = "LTAI5tE2Z7nA1rbtzZYMSPqR"; public static String accessKeySecret = "HOGUqx1t4UWh8KepXJf69dlKj4tTBs"; public static String bucketName="jiayixing-bucket"; public static String endpoint = "oss-cn-beijing.aliyuncs.com"; /** * base64图片 contentType */ private static final String CONTENT_TYPE = "image/jpg"; public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId,accessKeySecret); public static String ossUpload(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()); ossClient.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(content.available()); // 设置文件长度 //metadata.setContentType("image/jpg"); // 设置文件类型为PNG图片 // 上传文件流到OSS ossClient.putObject(bucketName, fileName, content,metadata); // 返回上传后的文件名 return oss_domain + fileName; } catch (IOException e) { e.printStackTrace(); return null; } finally { // 关闭OSS客户端 ossClient.shutdown(); } } }