概述:
七牛云存储服务,提供空间(Bucket)的概念,用来存储各种类型的文件,七牛内部将该服务取名为Kodo;通常都是上传本地文件,或者将企业或个人的网站的静态文件(image、css、javascript…..)通过配置镜像 平滑迁移到七牛的存储空间,但七牛其实也提供 抓取网络文件的操作,即:Fetch,但该操作比较适合一些小文件,大文件不建议使用该方法。-
思路:
- 首先获取一个网络文件的url
- 获取七牛提供的Auth对象,通过auth获取BucketManager对象,然后调用BucketMgr的fetch方法,指定存储的空间(bucket)和存储名称(key)即可
代码示例:
package com.qiniu.kodo;
import com.qiniu.base.AccountMgr;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
/**
* 七牛抓取网络资源文件
* @author xuhuanchao
*
*/
public class Fetch {
public static void main(String[] args) {
//1.网上的图片的URL
String url = "http://d.pic1.ajkimg.com/display/anjuke/7bcb4a-%E4%B8%AD%E7%8E%AF%E5%9C%B0%E4%BA%A7%E6%B9%96%E5%8D%97%E5%88%86%E5%85%AC%E5%8F%B8/3d9ba36efa37f8845daefb947df6486f-600x450.jpg";
//2.获取Auth 和 BucketManager 对象
Auth auth = Auth.create(AccountMgr.ACCESS_KEY, AccountMgr.SECRET_KEY);
Configuration config = new Configuration(Zone.autoZone());
BucketManager bucketMgr = new BucketManager(auth, config);
//3.指定上传的存储空间和存储在该空间中的名称
String bucketName = "testspace";
String key = "fetch_file.jpg";
try {
DefaultPutRet putRet = bucketMgr.fetch(url, bucketName, key);
System.out.println(putRet.hash + ":" + putRet.key);
} catch (QiniuException e) {
e.printStackTrace();
}
}
}
注:使用的是qiniu-java-sdk-7.2.1.jar 所以需要Configuration对象
-
测试结果:
如图所示: