java上传oss

控制器

@RequestMapping("/addGiftdouble")
    public Resp addGiftdouble(@RequestParam("file") MultipartFile file) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        String fileExtension = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        String cc=file.getOriginalFilename();
        int num = (int) (Math.random() * (20000 - 10000 + 1) + 10000);
        String aa = simpleDateFormat.format(new Date());
        String bb = aa + num;//随机名
        String fileName = bb + fileExtension;//图片名字
        String fileUrl = "http://" + OssUtil.uploadFile(file, "sys/gift", fileName);//oss地址
        System.out.println("fileUrl=" + fileUrl);
        System.out.println("fileExtension=" + fileExtension);
        System.out.println("fileName=" + fileName);
        Resp res = Resp.getNew().success("msg", "添加礼物成功");
        res.put("data", fileUrl);
        res.put("name",cc);
        return res;
    }

oss工具类OssUtil

package com.zj.ob.yyf.util;

import com.alibaba.fastjson.JSON;
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.PutObjectResult;
import com.zj.ob.yyf.config.OssConfigProperties;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

public class OssUtil {
    private static final Logger logger = LoggerFactory.getLogger(OssUtil.class);

    private static String endpoint = OssConfigProperties.getEndpoint();
    private static String accessKeyId = OssConfigProperties.getAccessKeyId();
    private static String accessKeySecret = OssConfigProperties.getAccessKeySecret();
    private static String bucketName = OssConfigProperties.getBucketName();
    private static String host = OssConfigProperties.getHost();

    public static String uploadFile(MultipartFile file, String folder, String fileName){
        if(StringUtils.isNotBlank(folder)){
            fileName = folder +"/"+ fileName;
        }
        String result = "";
        System.out.println("fileName:"+fileName);
        logger.info("Started");

        OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
        try {

            if (ossClient.doesBucketExist(bucketName)) {
            } else {
                System.out.println("您的Bucket不存在,创建Bucket:" + bucketName + "。");
                ossClient.createBucket(bucketName);
            }
            InputStream is = new ByteArrayInputStream(file.getBytes());
            PutObjectResult res = ossClient.putObject(bucketName, fileName, is);
            System.out.println(JSON.toJSONString(res));
            System.out.println("Object:" + fileName + "存入OSS成功。");
           // result = bucketName +"." +host + "/" + fileName;
            result = host + "/" + fileName;
            is.close();
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message: " + oe.getErrorMessage());
            System.out.println("Error Code:       " + oe.getErrorCode());
            System.out.println("Request ID:      " + oe.getRequestId());
            System.out.println("Host ID:           " + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message: " + ce.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            ossClient.shutdown();
        }
        logger.info("Completed");
        return result;
    }
    
    public static String deleteFile(String folder,String fileName){
    	 if(StringUtils.isNotBlank(folder)){
             fileName = folder +"/"+ fileName;
         }
    	 String result = "";
        OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
        try {

        	ossClient.deleteObject(bucketName, fileName);
        	
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            ossClient.shutdown();
        }
        logger.info("Completed");
        return result;
    }
}

配置oss参数实体类

package com.zj.ob.yyf.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

@Component
public class OssConfigProperties {

    private static String endpoint;
    private static String accessKeyId;
    private static String accessKeySecret;
    private static String bucketName;
    private static String host;


    @Value("${oss.accessKeyId}")
    private  String paccessKeyId;

    @Value("${oss.endpoint}")
    private  String pendpoint;

    @Value("${oss.accessKeySecret}")
    private  String paccessKeySecret;

    @Value("${oss.bucketName}")
    private  String pbucketName;

    @Value("${oss.host}")
    private  String phost;

    @PostConstruct
    public void transValues() {
        endpoint = this.pendpoint;
        accessKeyId = this.paccessKeyId;
        accessKeySecret = this.paccessKeySecret;
        bucketName = this.pbucketName;
        host = this.phost;

    }

    public static String getEndpoint() {
        return endpoint;
    }

    public static void setEndpoint(String endpoint) {
        OssConfigProperties.endpoint = endpoint;
    }

    public static String getAccessKeyId() {
        return accessKeyId;
    }

    public static void setAccessKeyId(String accessKeyId) {
        OssConfigProperties.accessKeyId = accessKeyId;
    }

    public static String getAccessKeySecret() {
        return accessKeySecret;
    }

    public static void setAccessKeySecret(String accessKeySecret) {
        OssConfigProperties.accessKeySecret = accessKeySecret;
    }

    public static String getBucketName() {
        return bucketName;
    }

    public static void setBucketName(String bucketName) {
        OssConfigProperties.bucketName = bucketName;
    }

    public static String getHost() {
        return host;
    }

    public static void setHost(String host) {
        OssConfigProperties.host = host;
    }
}

yml配置参数

oss:
  endpoint: ****
  accessKeyId: ***
  accessKeySecret: ****
  bucketName: ****
  host: ***
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值