package com.hollywood.applet.component; import com.hollywood.common.basic.ApiResult; import com.obs.services.ObsClient; import com.obs.services.model.ObjectMetadata; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.util.UUID; /** * @author feiyunchuan */ @Slf4j @Api(tags = "Ali-OSS文件上传接口") @RestController @RequestMapping("/ali-oss/") public class AliOssFileUploadController { @Value("${file.cdn:https://nncdn.pharmacylinked.com}") private String FILE_CDN; //OBS图片访问域名 public static String endPoint = "obs.cn-north-4.myhuaweicloud.com"; public static String accessKeyId = "SMMYY6PBKSOAO4WJ5DWM"; public static String accessKeySecret = "mHAFbQ78lIFgcIzjrHqSGioe9vVonEqgvZBWCAwX"; public static String bucketName = "duanshiping"; public static String oss_domain = "https://duanshiping.obs.cn-north-4.myhuaweicloud.com/"; public static ObsClient obsClient = new ObsClient(accessKeyId, accessKeySecret, endPoint); @ApiOperation(value = "服务端上传", notes = "服务端上传") @PostMapping(value = "upload") public ApiResult fileUpload(@RequestParam(value = "file") MultipartFile file) throws IOException { 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,"admin/"+fileName,content,meta);// 上传Object. if(!"".equals(fileName)){ System.out.println(fileName); fileName = oss_domain+"admin/"+fileName; } } return ApiResult.okmsg(fileName); } }