Spring Boot集成七牛云实现文件上传

1. 七牛云存储空间创建

注册认证七牛云账号后,在首页的管理控制台->选择空间管理->新建空间
创建存储空间
创建成功后,七牛云会自动分配一个外链域名,也可以自己定义:
存储空间信息
可以点击上图上传文件按钮,选中一个本地文件上传测试。

2. Spring Boot集成七牛云
  1. 添加maven依赖:
        <!--七牛云-->
        <dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>[7.2.0, 7.2.99]</version>
        </dependency>
  1. 七牛云配置类,密钥AK,SK配置信息在:个人中心->密钥管理 可查:
    密钥信息

    @Component
    public class QiNiuUtil {
    	
    	//外链域名地址
        public static String qiniu_img_url_pre = "http://q8w1mid5i.bkt.clouddn.com/";
    	
    	//AccessKey
        public static String ACCESS_KEY = "CY39-W9tkMmp4p6AsYR9Bzcj5W-u459HRDhDRWkD";
    	
    	//SecretKey
        public static String SECRET_KEY = "PgeZCUjBhdryxp862kMHalFK3Up6ziqBaWJR2cLi";
    	
    	//存储空间名称
        public static String bucketname = "lijiageng";
        
        
        
        /**
         * 上传文件
         */
        public static String upload2Qiniu(FileInputStream file, String uploadFileName) {
            //构造一个带指定Zone对象的配置类,Zone.zone0()代表华东地区
            //zone2() 华南
            Configuration cfg = new Configuration(Zone.zone1());
            //...其他参数参考类注释
            UploadManager uploadManager = new UploadManager(cfg);
            //默认不指定key的情况下,以文件内容的hash值作为文件名
            String key = uploadFileName;
            Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
            String upToken = auth.uploadToken(bucketname);
            try {
                Response response = uploadManager.put(file, key, upToken, null, null);
                //解析上传成功的结果
                String bodyString = response.bodyString();
                Map map = JSON.parseObject(bodyString, Map.class);
                String hash = (String) map.get("key");
                if (StringUtils.isNotEmpty(hash)) {
                    return qiniu_img_url_pre + uploadFileName;
                }
                System.out.println(response.bodyString());
                // 访问路径
                System.out.println(qiniu_img_url_pre + uploadFileName);
            } catch (QiniuException ex) {
                Response r = ex.response;
                System.err.println(r.toString());
                try {
                    System.err.println(r.bodyString());
                    return null;
                } catch (QiniuException ex2) {
                    //ignore
                    ex.printStackTrace();
                    return null;
                }
            }
            return null;
        }
    
        /**
         * 下载文件
         * @param url 文件在七牛云服务器上的地址
         * @return
         */
        public static byte[] downloadFromQNY(String url) {
             url ="http://q8w1mid5i.bkt.clouddn.com/893ab9c335cb472cb0a956840f75d46c.pdf";
            OkHttpClient client = new OkHttpClient();
            Request request = new Request.Builder().url(url).build();
            try {
                okhttp3.Response resp = client.newCall(request).execute();
                if (resp.isSuccessful()) {
                    ResponseBody body = resp.body();
                    InputStream inputStream = body.byteStream();
                    ByteArrayOutputStream writer = new ByteArrayOutputStream();
                    byte[] buff = new byte[1024 * 2];
                    int len = 0;
                    try {
                        while ((len = inputStream.read(buff)) != -1) {
                            writer.write(buff, 0, len);
                        }
                        inputStream.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return writer.toByteArray();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
        
        
            public static void main(String[] args) throws FileNotFoundException {
    //        File file = new File("C:\\Users\\ljg\\Desktop\\BS\\xc-ui-pc-static-portal\\img\\page-1.jpg");
    //        FileInputStream fileInputStream = new FileInputStream(file);
    //        upload2Qiniu(fileInputStream,"123.jpg");
            downloadFromQNY(qiniu_img_url_pre + "893ab9c335cb472cb0a956840f75d46c.pdf");
        }
        
    }
    
    
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值