您的位置:首页 > 编程语言 > Java开发

Java--七牛云存储图片示例

2017-03-28 17:58 148 查看
项目中会用到大量的图片和小视频,为了分担服务器压力,将文件都放在七牛云。这里的思路很简单,就是移动端、pc端把文件上传到服务器,服务器做一个临时缓存,保存必要的信息到数据库后,将文件上传到七牛云,最后删除服务器的缓存。当然,也可以直接让移动端、pc端把文件上传到七牛云,七牛云在返回信息给服务器,这种方法虽然更佳,但是敲起代码来有点麻烦,复杂。

1).先去注册一个七牛云帐号,新建一个存储空间,存储空间一定要设置公开!

2).下载java的SDK,这里以java-sdk-7.1.1为例

3).在maven中引入jar包

<!-- 七牛云 -->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.1.1</version>
</dependency>


4).编写七牛云工具类:QiniuUtil.java

package com.hsp.util;
import java.io.IOException;
import java.util.UUID;

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

public class QiniuUtil {

//设置需要操作的账号的AK和SK
private static final String ACCESS_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
private static final String SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

//要上传的空间
private static final String bucketname = "xxxxxxxxxxxxxxxxxx";

//密钥
private static final Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

//普通上传
public void upload(String filePath, String fileName) throws IOException{
//创建上传对象
UploadManager uploadManager = new UploadManager();
try {
//调用put方法上传
Response res = uploadManager.put(filePath, fileName, auth.uploadToken(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 e1) {
//ignore
}
}
}

//普通删除
public void delete(String key) throws IOException {
//实例化一个BucketManager对象
BucketManager bucketManager = new BucketManager(auth);
//此处的33是去掉:http://ongsua0j7.bkt.clouddn.com/,剩下的key就是图片在七牛云的名称
key = key.substring(33);
//System.out.println("key---------->" + key);
try {
//调用delete方法移动文件
bucketManager.delete(bucketname, key);
} catch (QiniuException e) {
//捕获异常信息
Response r = e.response;
System.out.println(r.toString());
}
}
}


5).在controller中使用

...
QiniuUtil qiniuUtil = new QiniuUtil();
try {
//上传到七牛云
qiniuUtil.upload(filePath, fileName);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 七牛云 云存储