- 【前言】
- 【正文】
- (1)注册账号
- (2)新建存储空间
- 1)点击 管理控制台
- 2)选中 对象存储-立即添加
- 3)新建空间
- 4)起空间名称
- (3)查看存储空间信息
- (4)使用 Java SDK 实现功能
- 1)查看文档
- 2)鉴权
- 3)实现文件上传
- 第一步:查看操作步骤
- 第二步:导入jar包
- 第三步:建测试类
- 第四步:运行测试类
- 第五步:上传完成
- 4)文件删除
- 第一步:查看操作步骤
- 第二步:建测试方法
- 第三步:运行测试方法
- 第四步:成功删除
- (5)封装工具类
- 【结语】
【前言】
根据项目需求,需要实现图片存储功能,下面是常见的图片存储的实现方案。经研究选用七牛云云存储,下面介绍如何使用。
【正文】 (1)注册账号
官网地址:https://qmall.qiniu.com/
进行邮箱验证和实名认证之后,可以获得试用机会。
(2)新建存储空间可以创建多个存储空间,各个存储空间是相互独立的
1)点击 管理控制台 2)选中 对象存储-立即添加 3)新建空间 4)起空间名称 (3)查看存储空间信息点击概览,可查看空间详细信息
打开开发者中心:
网址:https://developer.qiniu.com/
进入对象存储:
Java SDK的所有的功能,都需要合法的授权。
授权凭证的签算需要七牛账号下的一对有效的Access Key和Secret Key
查看密钥:
1、点击密钥管理:
2、查看生成的密钥:
由于项目使用的是maven,所以导入maven的jar包
第三步:建测试类com.qiniu qiniu-java-sdk [7.7.0, 7.7.99]
package com.qnylearn.test;
import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import org.junit.Test;
import javax.swing.plaf.synth.Region;
public class TestQiNiu {
@Test
public void testUpload(){
//构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(Zone.zone2());
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
//填写自己的密钥和空间名称
String accessKey = "uejiEbAPSe3L6nBDrN2DeDGLaA0nq_6xFNksYcl";
String secretKey = "eVyjJv9TLy0A0aPAvnWpv5Mly9WWfexvDzBcBpb";
String bucket = "meiniantxg";
//如果是linux情况下,格式是 D:/qiniu/test.png
String localFilePath = "H:\图片\111.jpg";
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = null;
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
Response response = uploadManager.put(localFilePath, key, upToken);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
System.out.println(putRet.key);
System.out.println(putRet.hash);
} catch (QiniuException ex) {
Response r = ex.response;
System.err.println(r.toString());
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
//ignore
}
}
}
}
第四步:运行测试类
查看控制台中打印的Key值,与七牛云中文件所上传到的空间的key值一致
控制台:
存储空间:
可查看所上传文件的详情:
打开资源管理中的 删除空间中的文件,查看操作步骤
@Test
public void testDel(){
//构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(Zone.zone2());
//...其他参数参考类注释
String accessKey = "uejiEbAPSe3L6nBDrN2DeDGLaA0nq_6xFNksYcl";
String secretKey = "eVyjJv9TLy0A0aPAvnWpv5Mly9WWfexvDzBcBpb";
String bucket = "meiniantxg";
String key = "FgCPIGOPDKr49Q8ZsJSsV3QYIUjG";
Auth auth = Auth.create(accessKey, secretKey);
BucketManager bucketManager = new BucketManager(auth, cfg);
try {
bucketManager.delete(bucket, key);
} catch (QiniuException ex) {
//如果遇到异常,说明删除失败
System.err.println(ex.code());
System.err.println(ex.response.toString());
}
}
第三步:运行测试方法
第四步:成功删除
查看七牛云空间显示 key 值为 FgCPIGOPDKr49Q8ZsJSsV3QYIUjG 的文件已删除
可以将上述功能封装为工具类使用,在此就不赘述。
【结语】上述就是云存储实现文件上传与删除的步骤啦,欢迎各位大佬在评论区交流~



