现在是一个Saas,Paas满天飞的时代,在这个时代下,开发一套信息化平台已经不像之前需要通过开发人员完全的构建才能得到,由于有了Saas和Paas的高速发展和出现,导致当前开发业务平台在技术上的门槛就进一步的降低,而技术上实现的难度和要求也由于他们的发展而变得更傻瓜更快捷,就拿我们平时非常常见的文件上传到服务器这样的功能,以前都是将文件上传到自己的服务器,功能倒也不难,无非就是IO和流的操作,但是做为运营和产品的要求来看,接下来的工作就会让每一位开发感到崩溃,比如文件上传后的文件管理怎么办,文件的合法性怎么办,文件的安全性怎么办,下载的高并发高资源消耗怎么办等等很多的问题都出现了,特别是在网络已经发展到5G的今天,网络安全时间频发,如何保证文件不带木马和毒,这些又怎么办?
所以利用Saas和Pass平台,这些问题都不用考虑,因为这些厂家早已经为我们考虑得更详细和周到。以下为利用七牛云上传文件的代码,供大家讨论交流。
package com.zhiliaotang.util;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
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;
/**七牛云的工具类,使用七牛云存储做为服务容器
* @author 杨正辉
* @date 2019-07-08 17:13
* @version v1.0
*
*/
public class FileUtil {
private static final String ak = "";//密钥管理中的密钥
private static final String sk = "";
private static final String bucketname = "";//对象存储空间的名字
static Configuration cfg = new Configuration(Zone.zone1());//对象存储空间的位置
/**七牛云上传方法
* @param reader 文件流
* @param filename 唯一文件名-规则:uuid/guid
*/
public static void upload(InputStream reader,String filename){
UploadManager uploadManager = new UploadManager(cfg);
Auth auth = Auth.create(ak, sk);
String upToken = auth.uploadToken(bucketname);
try {
Response response = uploadManager.put(reader,filename,upToken,null, null);
//解析上传成功的结果
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 delete(String filename){
Auth auth = Auth.create(ak, sk);
BucketManager bucketManager = new BucketManager(auth, cfg);
try {
bucketManager.delete(bucketname, filename);
} catch (QiniuException ex) {
//如果遇到异常,说明删除失败
System.err.println(ex.code());
System.err.println(ex.response.toString());
}
}
public static void main(String args[]){
delete("pic02.jpg");
}
}