文章目录
【前言】
根据项目需求,需要实现图片存储功能,下面是常见的图片存储的实现方案。经研究选用七牛云云存储,下面介绍如何使用。
【正文】
(1)注册账号
进行邮箱验证和实名认证之后,可以获得试用机会。
(2)新建存储空间
可以创建多个存储空间,各个存储空间是相互独立的
1)点击 管理控制台
2)选中 对象存储-立即添加
3)新建空间
4)起空间名称
(3)查看存储空间信息
点击概览,可查看空间详细信息
(4)使用 Java SDK 实现功能
1)查看文档
打开开发者中心:
网址:https://developer.qiniu.com/
进入对象存储:
2)鉴权
Java SDK的所有的功能,都需要合法的授权。
授权凭证的签算需要七牛账号下的一对有效的Access Key
和Secret Key
查看密钥:
1、点击密钥管理:
2、查看生成的密钥:
3)实现文件上传
第一步:查看操作步骤
第二步:导入jar包
由于项目使用的是maven,所以导入maven的jar包
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.7.0, 7.7.99]</version>
</dependency>
第三步:建测试类
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;
/**
* @program: test
* @description: test
* @author: txg
* @create: 2021-10-10 17:45
**/
public class TestQiNiu {
@Test
public void testUpload(){
//构造一个带指定 Region 对象的配置类
/* 七牛云文件上传测试类
* Zone.zone0:华东
* Zone.zone1:华北
* Zone.zone2:华南
* 自动识别上传区域
* Zone.autoZone
*/
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值一致
控制台:
存储空间:
第五步:上传完成
可查看所上传文件的详情:
4)文件删除
第一步:查看操作步骤
打开资源管理中的 删除空间中的文件,查看操作步骤
第二步:建测试方法
@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 的文件已删除
(5)封装工具类
可以将上述功能封装为工具类使用,在此就不赘述。
【结语】
上述就是云存储实现文件上传与删除的步骤啦,欢迎各位大佬在评论区交流~