七牛云网络图片上传

今天有一个业务需要做处理。把网络上的图片保存到服务器上,本地存储地址就可以。几经考虑,选择了七牛云服务器。没有别的原因,api丰富且简单。

首先需要注册成为七牛云用户,附上七牛云官网,可自行注册:https://www.qiniu.com/

注册成功后,可查看自己的AccessKey和SecretKey,附上查看的地址:https://portal.qiniu.com/user/key

因为待会调用七牛云的接口的时候会用到,所以建议把两个key给粘贴出来。

我们查看一下它的上传代码,附上官方api:https://developer.qiniu.com/kodo/sdk/1239/java

所需要的只有三个凭证。AccessKeySecretKeyBucket。

如何获取bucket呢,这个需要我们自己去进行创建,附创建地址:https://portal.qiniu.com/bucket/create

这里创建的时候存储空间名称就是bucket,可选择存储区域,温馨提示:选择自己服务器所在的对应区域,可减少流量的传输,加快速度,说白了省钱。

创建完毕后等待3个工作日内处理完毕后就可以自行玩转了。

实战:

因为我的业务是把网络的图片存储到服务器,所以调用的api为:抓取网络资源到空间。

//构造一个带指定Zone对象的配置类,Zone就是我们可选的存储区域
Configuration cfg = new Configuration(Zone.zone0());
//...其他参数参考类注释
String accessKey = "对应的accessKey";
String secretKey = "对应的secretKey";
String bucket = "存储空间名称bucket";
String key = "这里就是要保存的文件名称,比如:a.jpg";
String remoteSrcUrl = "这里是我们要保存的网络图片地址,比如:http://devtools.qiniu.com/qiniu.png";
Auth auth = Auth.create(accessKey, secretKey);
BucketManager bucketManager = new BucketManager(auth, cfg);
//抓取网络资源到空间
try {
    FetchRet fetchRet = bucketManager.fetch(remoteSrcUrl, bucket, key);
    System.out.println(fetchRet.hash);
    System.out.println(fetchRet.key);
    System.out.println(fetchRet.mimeType);
    System.out.println(fetchRet.fsize);
} catch (QiniuException ex) {
    System.err.println(ex.response.toString());
}

ok。执行之后网络图片就保存到我们的服务器啦,业务中也可把key和remoteSrcUrl都保存到数据库,方便确认和查找。

猜你喜欢

转载自www.cnblogs.com/shijianhenjinpo/p/10817958.html