一:第三方服务有:阿里云,七牛云(存储服务器)
1:在实际开发中,我们会有很多处理不同功能的服务器。例如:
应用服务器:负责部署我们的应用
数据库服务器:运行我们的数据库
文件服务器:负责存储用户上传文件的服务器
分服务器处理的目的是让服务器各司其职,从而提高我们项目的运行效率。
2:常见的文件,图片存储方案:
方案一:使用nginx搭建图片服务器
方案二:使用开源的分布式文件存储系统,例如Fastdfs、HDFS等
方案三:使用云存储,例如阿里云、七牛云等
3.阿里云,七牛云存储
①:注册并登录–登录成功后点击页面右上角管理控制台–新建存储空间–查看存储空间信息
②:开发者中心–官方(SDK)
1.导入maven坐标
com.qiniu
qiniu-java-sdk
7.2.0
2.直接拷贝-官网上-文件上传-的全部代码(将本地的文件上传的功能–测试)
public static final String AK="秘钥账号";
public static final String SK="秘钥密码";
public static final String BUCKET="自己创建的bucket名称";
/**
* 上传
*/
@Test
public void UploadTest(){
//构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone0());
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
String accessKey = AK;
String secretKey = SK;
String bucket = BUCKET;
//如果是Windows情况下,格式是 D:\\qiniu\\test.png
String localFilePath = "本地路径名+文件的名称以及后缀";
//默认不指定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
}
}
}
3.AK,SK,bucket(3个参数--1.秘钥管理 2.创建的bucket名称)
4.输入自己的相应的参数,执行成功,文件上传到第三方服务器上
5.至此本地文件用代码实现上传到第三方服务器上,可以在自己的账号查看,会多出来一行文件的信息。
4.删除空间中的文件
①:资源管理–删除空间中的文件
②:直接将官网中代码拷贝过来(参数换成自己的参数即可)
@Test
public void deleteTest(){
//构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone0());
//...其他参数参考类注释
String accessKey = AK;
String secretKey =SK;
String bucket = BUCKET;
String key = "Fu3Ic6TV6wIbJt793yaGeBmCkzTX"; //文件名
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());
}
}
③:执行完成,可以查看第三方文件的信息(已经删除了,证明成功了)