chenjiahe
2022-12-26 5acd00fd233757a9c7616b23b195e93e3cdb605a
src/main/java/com/hx/util/OBSUtil.java
@@ -2,6 +2,8 @@
import com.obs.services.ObsClient;
import com.obs.services.exception.ObsException;
import com.obs.services.model.HeaderResponse;
import com.obs.services.model.ObsBucket;
import com.obs.services.model.PutObjectResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -24,12 +26,13 @@
    * @param localFile 图片文件
    * @param ak 访问秘钥
    * @param sk 访问秘钥
    * @param endPoint 存储桶
    * @param fileName 文件名称(带后缀)
    * @param endPoint 区域
    * @param bucketName 存储桶
    * @param fileName 文件名称(带后缀),为空时自动生成
    * @return
    * @throws IOException
    */
   public static PutObjectResult uploadImg(MultipartFile localFile,String ak,String sk,String endPoint,String fileName) throws IOException {
   public static PutObjectResult uploadImg(MultipartFile localFile,String ak,String sk,String endPoint,String bucketName,String folderName,String fileName) throws IOException {
      //没有名次的时候自动生成
      if(StringUtils.isNull(fileName)){
@@ -38,13 +41,16 @@
            fileName += localFile.getOriginalFilename().substring(localFile.getOriginalFilename().lastIndexOf("."));
         }
      }
      if(StringUtils.noNull(folderName)){
         fileName = folderName+"/"+fileName;
      }
      PutObjectResult putObjectResult = null;
      //初始化OBS客户端
      ObsClient obsClient = new ObsClient(ak, sk, endPoint);
      try{
         putObjectResult = obsClient.putObject(endPoint, fileName,localFile.getInputStream());
         putObjectResult = obsClient.putObject(bucketName,fileName , localFile.getInputStream());
      }catch (ObsException e){
         logger.error("华为云 OBS 上传文件报错 ");
         logger.error("HTTP Code: " + e.getResponseCode());
@@ -53,6 +59,7 @@
         logger.error("Request ID:" + e.getErrorRequestId());
         logger.error("Host ID:" + e.getErrorHostId());
         e.printStackTrace();
      }finally {
         if(obsClient != null){
            obsClient.close();
@@ -67,12 +74,14 @@
    * @param localFile 存储文件
    * @param ak 访问秘钥
    * @param sk 访问秘钥
    * @param endPoint 存储桶
    * @param fileName 文件名称(带后缀)
    * @param endPoint 区域
    * @param bucketName 存储桶
    * @param folderName 文件夹名称
    * @param fileName 文件名称(带后缀),为空时自动生成
    * @return
    * @throws IOException
    */
   public static PutObjectResult uploadImg(File localFile,String ak,String sk,String endPoint,String fileName) throws IOException {
   public static PutObjectResult uploadImg(File localFile,String ak,String sk,String endPoint,String bucketName,String folderName,String fileName) throws IOException {
      //没有名次的时候自动生成
      if(StringUtils.isNull(fileName)){
@@ -81,13 +90,16 @@
            fileName += localFile.getName().substring(localFile.getName().lastIndexOf("."));
         }
      }
      if(StringUtils.noNull(folderName)){
         fileName = folderName+"/"+fileName;
      }
      PutObjectResult putObjectResult = null;
      //初始化OBS客户端
      ObsClient obsClient = new ObsClient(ak, sk, endPoint);
      try{
         putObjectResult = obsClient.putObject(endPoint, fileName,localFile);
         putObjectResult = obsClient.putObject(bucketName, fileName, localFile);
      }catch (ObsException e){
         logger.error("华为云 OBS 上传文件报错 ");
         logger.error("HTTP Code: " + e.getResponseCode());
@@ -96,6 +108,7 @@
         logger.error("Request ID:" + e.getErrorRequestId());
         logger.error("Host ID:" + e.getErrorHostId());
         e.printStackTrace();
      }finally {
         if(obsClient != null){
            obsClient.close();
@@ -105,4 +118,39 @@
   }
   /** 创建桶
    * @param ak 访问秘钥
    * @param sk 访问秘钥
    * @param endPoint 区域
    * @param bucketName 存储桶
    * @return
    * @throws IOException
    */
   public static HeaderResponse createBucket(String ak,String sk,String endPoint,String bucketName) throws IOException {
      HeaderResponse response = null;
      //初始化OBS客户端
      ObsClient obsClient = new ObsClient(ak, sk, endPoint);
      try{
         response = obsClient.createBucket(bucketName);
      }catch (ObsException e){
         logger.error("华为云 OBS 创建桶报错 ");
         logger.error("HTTP Code: " + e.getResponseCode());
         logger.error("Error Code:" + e.getErrorCode());
         logger.error("Error Message: " + e.getErrorMessage());
         logger.error("Request ID:" + e.getErrorRequestId());
         logger.error("Host ID:" + e.getErrorHostId());
         e.printStackTrace();
      }finally {
         if(obsClient != null){
            obsClient.close();
         }
      }
      return response;
   }
}