七牛云上传文件封装

创建类 QiniuUtil.java

private static final String ACCESSKEY = "";
private static final String SECRETKEY = "";
// 空间名
private static final String BUCKEY = "";
// 是否可以断点续传(true:可以;false:不可以)
private static boolean breakingPoint = false;

上传过程:

1、获取 UploadManager

2、调用 UploadManager.put() 方法上传

3、解析上传结果


创建获取 UploadManager 的方法:

/**
 * 获取上传类
 * @return 上传类
 */
private static UploadManager getUploadManager() {
    FileRecorder fileRecorder = null;
    if(breakingPoint) {
        try {
            fileRecorder = new FileRecorder(Paths.get(System.getenv("java.io.tmpdir"), BUCKEY).toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    // 构造一个带指定 Zone 对象的配置类
    Configuration cfg = new Configuration(getZone());
    // 声明上传类
    return new UploadManager(cfg,fileRecorder);
}

获取上传 Token:

/**
 * 获取上传 token
 * @return 返回 token
 */
private static String getToken(){
    Auth auth = Auth.create(ACCESSKEY,SECRETKEY);
    return auth.uploadToken(BUCKEY);
}

获取上传空间:

/**
 * 获取上传区
 * @return 返回区
 */
private static Zone getZone(){
    return Zone.zone2();
}

上传文件:

通过数据流上传:

/**
 * 上传文件(通过数据流上传)
 * @param byteArrayInputStream
 * @param key
 */
public static void uploadFile(ByteArrayInputStream byteArrayInputStream, String key, boolean breakingPoint){
    try{
        QiniuUtil.breakingPoint = breakingPoint;
        // 上传
        Response response = getUploadManager().put(byteArrayInputStream,key,getToken(),null,null);
        DefaultPutRet putRet = new Gson().fromJson(response.bodyString(),DefaultPutRet.class);

        System.out.println(putRet.key);
        System.out.println(putRet.hash);
    }catch (QiniuException e) {
        Response r = e.response;
        System.err.println(r.toString());
        try {
            System.err.println(r.bodyString());
        } catch (QiniuException e1) {
            System.err.println(e1.toString());
        }
    }
}

通过 buty[] 上传:

/**
 * 上传文件(通过 byte[] 上传)
 * @param fileBytes 文件字节数组
 * @param key 文件名(不指定key的情况下,默认以文件内容 hash 值作为文件名)
 */
public static void uploadFile(byte[] fileBytes, String key, boolean breakingPoint){
    try{
        QiniuUtil.breakingPoint = breakingPoint;
        // 上传
        Response response = getUploadManager().put(fileBytes,key,getToken());
        // 解析上传结果
        DefaultPutRet putRet = new Gson().fromJson(response.bodyString(),DefaultPutRet.class);
        System.out.println(putRet.key);
        System.out.println(putRet.hash);
    }catch (QiniuException e) {
        Response r = e.response;
        System.err.println(r.toString());
        try {
            System.err.println(r.bodyString());
        } catch (QiniuException e1) {
            System.err.println(e1.toString());
        }
    }
}

直接上传:

/**
 * 上传文件(直接上传)
 * 直接指定文件的完整路径即可
 * @param filePath 文件路径
 * @param key 文件名(不指定key的情况下,默认以文件内容 hash 值作为文件名)
 */
public static void uploadFile(String filePath, String key, boolean breakingPoint){
    try{
        QiniuUtil.breakingPoint = breakingPoint;
        // 上传
        Response response = getUploadManager().put(filePath, key, getToken());
        // 解析上传结果
        DefaultPutRet putRet = new Gson().fromJson(response.bodyString(),DefaultPutRet.class);
        System.out.println(putRet.key);
        System.out.println(putRet.hash);
    }catch (QiniuException e){
        Response r = e.response;
        System.err.println(r.toString());
        try {
            System.err.println(r.bodyString());
        } catch (QiniuException e1) {
            System.err.println(e1.toString());
        }
    }
}


你可能感兴趣的:(上传文件,java)