七牛云上传本地图片工具类

七牛云存储服务器,上传本地附件操作方法:

一、引入七牛云jar包

maven项目需要引入qiniu-java-sdk的jar包

    <dependency>
        <groupId>com.qiniu</groupId>
        <artifactId>qiniu-java-sdk</artifactId>
        <version>7.2.1</version>
    </dependency>

注:非maven项目可以通过互联网公共maven仓库下载jar包。

三、调用工具方法uploadFile上传文件

代码如下:

package com.test.util;

import java.io.File;

import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;

/** 
 * @ClassName: QiniuUtil 
 * @Description: 
 * @author: tianpengw
 * @date 2018年4月24日 下午4:28:31 
 *  
 */
public class QiniuUtil {
    /**
     * 设置七牛云存储区域
     * Zone.zone0() :华东
     * Zone.zone1() :华北
     * Zone.zone2() :华南
     */
    private static Configuration cfg = new Configuration(Zone.zone0());
    /**
     * 上传控制器
     */
    private final static UploadManager uploadManager = new UploadManager(cfg);
    /**
     * 七牛云外链地址
     */
    private static String qiniu_outside_url = "address";

    /**
     * 七牛云账号对应的密钥
     */
    private static final Auth qiniu_auth = Auth.create("accessKey","secretKey");
    /**
     * 七牛云上传空间名
     */
    private static final String qiniu_bucket = "bucketName";

    /**
     * 
     * @Description: 简单上传,使用默认策略
     * @author: tianpengw
     * @return
     */
    public static String getUpTokenDefault(){
        return qiniu_auth.uploadToken(qiniu_bucket);
    }

    /**
     * 
     * @Description: 覆盖上传
     * @author: tianpengw
     * @param key
     * @return
     */
    public static String getUpTokenCover(String key){
        return qiniu_auth.uploadToken(qiniu_bucket, key);
    }

    /**
     * 
     * @Description: 上传磁盘文件
     * @author: tianpengw
     * @param fileFullName 文件全路径
     * @param keyPath 上传文件的路径
     * @param upToken 七牛云上传token
     * 
     */
    private static String qiniuUploadFile(String fileFullName, String keyPath, String upToken){
        try {
            if(null != fileFullName && !"".equals(fileFullName) && new File(fileFullName).exists()){
                if(null == keyPath || "".equals(keyPath)){
                    keyPath = "file/";
                }
                String fileName = fileFullName.substring(fileFullName.lastIndexOf("/")+1);
                String key = keyPath + System.currentTimeMillis()+"_"+fileName;
                boolean result =upload(fileFullName, key, upToken);
                if(result){
                    return qiniu_outside_url + key;
                }

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 
     * @Description: 上传磁盘中的文件
     * @author: tianpengw
     * @param filePath
     * @param key
     * @param upToken
     * @return
     */
    private static boolean upload(String filePath, String key, String upToken){
        try {
            Response res = uploadManager.put(filePath, key, upToken);
            System.out.println(res.bodyString());
            if(res.isOK()){
                return true;
            }
        } catch (QiniuException e) {
            System.out.println("上传磁盘文件异常!");
        }
        return false;
    }

    /**
     * 
     * @Description: 上传文件
     * @author: tianpengw
     * @param fileFullName
     * @param keyPath
     * @param keyName 如果覆盖上传此值不为空,如果为空默认上传
     * @return
     */
    public static String uploadFile(String fileFullName, String keyPath, String keyName){

        if(null != keyName && !"".equals(keyName)){
            return qiniuUploadFile(fileFullName, keyPath, getUpTokenCover(keyName));
        }else{
            return qiniuUploadFile(fileFullName, keyPath, getUpTokenDefault());
        }
    }

    public static void main(String[] args) {
        System.out.println(uploadFile("d:/test001.doc",null,null));
    }
}

1.设置存储区域为你申请的空间的区域;
2.填入你申请的accessKey和secretKey;
3.修改为你申请的空间名称
这样你就可以上传图片了

最后说明下:
fileFullName:是你本地文件的全路径
keyPath:这是你上传后文件存储的地址
如你的七牛云外链域名是 http://qny.qiniutest.com/,你要传一个本地文件:d:/test001.doc,你并没有送keyPath,通过工具上传后你的文件访问地址是:
http://qny.qiniutest.com/file/test001.doc,当然代码是死的,人是活的,你看根据自己需求修改此处默认路径 或者干脆不设置这个路径,不过建议你加上这个路径,在以后你查下不同功能模块的附件时可以作为区分,如果图片都放在img/下,附件都放在file/下
keyName :将要覆盖的文件名称,比如我要覆盖http://qny.qiniutest.com/file/test001.doc这个文件我的key 就写成file/test001.doc

到此七牛云磁盘上传图片的方法介绍完毕

发布了22 篇原创文章 · 获赞 15 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/niaoer2010/article/details/80183564