图片储存方案-----七牛云存储的使用
第一章:注册、登录、实名认证注册网址登录实名认证第二章:新建储存空间第一步:选择要创建的储存类型第二步:选择空间管理第三步:点击新建空间第四步:按照需求设置自己的存储空间内容空间创建成功第五步:查看空间信息直接点击上面的空间名称就可以进入第三章:操作储存空间(开发者中心)开发者中心:链接第一步:点击上面的对象存储由于我们使用的是java,所以在SDK里面选择java的SDK,通过查看可以知道如何使
·
第一章:注册、登录、实名认证
注册
登录
实名认证
第二章:新建储存空间
第一步:选择要创建的储存类型
第二步:选择空间管理
第三步:点击新建空间
第四步:按照需求设置自己的存储空间内容
空间创建成功
第五步:查看空间信息
直接点击上面的空间名称就可以进入
第三章:操作储存空间(开发者中心)
开发者中心:链接
第一步:点击上面的对象存储
由于我们使用的是java,所以在SDK里面选择java的SDK,通过查看可以知道如何使用java的SDK
第二步:鉴权
Java SDK的所有的功能,都需要合法的授权。授权凭证的签算需要七牛账号下的一对有效的Access Key和Secret Key,这对密钥可以在七牛云管理控制台的个人中心获得,如下图:
第四章:使用七牛云提供的SDK操作储存服务
1:文件上传:参考文档
import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
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;
/**
* @author Marston
* @date 2021/10/27
*/
public class QiNiuTest {
//利用七牛云提供的SDK实现将本地图片上传到七牛云服务器
@Test
public void test1(){
//构造一个带指定 Zone 对象的配置类
Configuration cfg = new Configuration(Zone.zone2());//选择储存区域,华中还是华南等,对应的是机房的位置,由于我上面选择的是华南,所以这里应该是 Zone.zone2()
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);//上传管理器,然后将配置对象传进去
//...生成上传凭证,然后准备上传
String accessKey = "your access key";//鉴权里面中密钥管理中的AK
String secretKey = "your secret key";//鉴权中密钥管理中的SK
String bucket = "your bucket name";//就是刚才新创建的空间的名称
//如果是Windows情况下,格式是 D:\\qiniu\\test.png
String localFilePath = "/home/qiniu/test.png";//要上传的文件的绝对路径
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = null;
//这两句就是为了鉴权
Auth auth = Auth.create(accessKey, secretKey);//产生一个认证对象
String upToken = auth.uploadToken(bucket);//通过这个进行鉴权
try {
/*
localFilePath:本地要上传文件的绝对路径
key:普通字符串,如果设置其的值不是空的话,它就会作为我们上传的文件名;如果不指定的话,七牛云会自动生成一个文件名
*/
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
}
}
}
}
测试
import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
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;
/**
* @author Marston
* @date 2021/10/27
*/
public class QiNiuTest {
//利用七牛云提供的SDK实现将本地图片上传到七牛云服务器
@Test
public void test1(){
//构造一个带指定 Zone 对象的配置类
Configuration cfg = new Configuration(Zone.zone2());//选择储存区域,华中还是华南等,对应的是机房的位置,由于我上面选择的是华南,所以这里应该是 Zone.zone2()
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);//上传管理器,然后将配置对象传进去
//...生成上传凭证,然后准备上传
String accessKey = "8Pi4mJ....PGNUm9";//鉴权里面中密钥管理中的AK
String secretKey = "aACHfFh02v...ACyR3";//鉴权中密钥管理中的SK
String bucket = "yyhealth-space-1";//就是刚才新创建的空间的名称
//如果是Windows情况下,格式是 D:\\qiniu\\test.png
String localFilePath = "E:\\thefiirstfiles\\毕业论文\\04_阶段四 医疗实战-传智健康\\4.阶段四-传智健康\\day04\\资源\\图片资源\\03a36073-a140-4942-9b9b-712cecb144901.jpg";//要上传的文件的绝对路径
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = null;
//这两句就是为了鉴权
Auth auth = Auth.create(accessKey, secretKey);//产生一个认证对象
String upToken = auth.uploadToken(bucket);//通过这个进行鉴权
try {
/*
localFilePath:本地要上传文件的绝对路径
key:普通字符串,如果设置其的值不是空的话,它就会作为我们上传的文件名;如果不指定的话,七牛云会自动生成一个文件名
*/
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
}
}
}
}
运行结果:
上传成功
2.删除文件
//构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(Region.region0());
//...其他参数参考类注释
String accessKey = "your access key";
String secretKey = "your secret key";
String bucket = "your bucket name";
String key = "your file key";
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());
}
测试
@Test
//删除七牛云服务器中的图片
public void test(){
//构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(Zone.zone2());
//...其他参数参考类注释
String accessKey = "8Pi4mJIPS....EUkPGNUm9";//鉴权里面中密钥管理中的AK
String secretKey = "aACHfFh02...PRgCoVPIACyR3";//鉴权中密钥管理中的SK
String bucket = "yyhealth-space-1";//就是刚才新创建的空间的名称
String key = "abc.jpg";//删除的文件名
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());
}
}
运行结果:
第五章:封装工具类
import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
/**
* 七牛云工具类
*/
public class QiniuUtils {
public static String accessKey = "dulF9Wz...tO708";
public static String secretKey = "vZkhW...DHVLMZOe";
public static String bucket = "qiniutest";
public static void upload2Qiniu(String filePath,String fileName){
//构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone0());
UploadManager uploadManager = new UploadManager(cfg);
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
Response response = uploadManager.put(filePath, fileName, upToken);
//解析上传成功的结果
DefaultPutRet putRet =
new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
} catch (QiniuException ex) {
Response r = ex.response;
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
//ignore
}
}
}
//上传文件
public static void upload2Qiniu(byte[] bytes, String fileName){
//构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone0());
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = fileName;
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
Response response = uploadManager.put(bytes, 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
}
}
}
//删除文件
public static void deleteFileFromQiniu(String fileName){
//构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone0());
String key = fileName;
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());
}
}
}
更多推荐
已为社区贡献9条内容
所有评论(0)