实现七牛的上传对多数开发者来说是很简单的,主要有一下几个步骤:
- 搭建开发环境;
a.了解七牛的portal平台;
b. 引入七牛的sdk,即jar包配置;
Tips:不了解的可以先看一下我的博客“七牛云存储之Kodo开发环境搭建” - 编码调试;
首先看一下我的项目结构:
图中圈出的是需要引入的七牛jar包,kodo包即是数据存储相关操作,dora包下是数据处理相关;
程序如下:
package com.qiniu.kodo;
import com.qiniu.base.AccountMgr;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
/**
* 七牛 java sdk 简单上传
* @author xuhuanchao
*/
public class SimpleUpload {
Auth auth = Auth.create(AccountMgr.ACCESS_KEY, AccountMgr.SECRET_KEY);
UploadManager uploadManager = new UploadManager();
/**
* 获取凭证
* @param bucketName 空间名称
* @return
*/
public String getUpToken(String bucketName) {
return auth.uploadToken(bucketName);
}
/**
* 上传
* @param filePath 文件路径 (也可以是字节数组、或者File对象)
* @param key 上传到七牛上的文件的名称 (同一个空间下,名称【key】是唯一的)
* @param bucketName 空间名称 (这里是为了获取上传凭证)
*/
public void upload(String filePath, String key, String bucketName) {
try {
// 调用put方法上传
Response res = uploadManager.put(filePath, key, getUpToken(bucketName));
// 打印返回的信息
System.out.println(res.bodyString());
} catch (QiniuException e) {
Response r = e.response;
// 请求失败时打印的异常的信息
System.out.println(r.toString());
try {
// 响应的文本信息
System.out.println(r.bodyString());
} catch (QiniuException qe) {
// ignore
}
}
}
/**
* 主函数:程序入口,测试功能
* @param args
*/
public static void main(String[] args) {
// 上传文件的路径,因为在Mac下,所以路径和windows下不同
String filePath = "/Users/xuhuanchao/Desktop/getImgByUrl.html";
// 要上传的空间
String bucketName = "admin-resources-bucket";
// 上传到七牛后保存的文件名
String key = "getImgByUrl.html";
new SimpleUpload().upload(filePath, key, bucketName);
}
}
package com.qiniu.base;
/**
* 账户信息,获取授权认证
* @author xuhuanchao
*
*/
public class AccountMgr {
public static final String ACCESS_KEY = "mfCLP7AlV77j42DZB697zUClBPGdjli_Av******";
public static final String SECRET_KEY = "FeULzzI79z1EOsDZ0xsXhhXleNEqqN5qZP******";
}
运行程序,默认会返回一个hash值和上传的key,如图:
最终就可以登录portal平台,找到上传指定的空间,选择内容管理进行查看上传的文件,如图: