第三方存储系统(一):阿里云OSS云存储配置及Java上传接口设计
项目开发中,为了实现静态资源分离,提高系统运行的速率和稳定性,我们会把资源文件剥离出项目系统.而搭建文件存储系统就成为了不可或缺的工作,目前中小型企业为了节约成本,更喜欢购买第三方存储服务,如阿里云OSS,七牛云,腾讯云存储等.
阿里云OSS和七牛云各有优点,阿里云OSS背靠阿里云大厂商,用户基数大,服务稳定性高.七牛云免费额度较为吸引人,对创业型公司来说可以节约一定的成本.
本篇博文主要介绍阿里云上的OSS云存储服务配置以及java 上传接口设计.
首先贴上接口代码,使用时只许更改:
- OSS内网/外网域名(ENDPOINT)
- OSS签名key( ACCESS_KEY_ID)
- OSS签名秘钥(ACCESS_KEY_ID)
- 存储空间名称(BUCKETNAME)
/**
* 阿里云OSS上传文件工具
*
* 支持普通文件上传,限制大小文件上传,限制大小图片上传
* Created by KingZS on 2018/5/26
*/
public class AliyunOssUpload {
//private Logger logger = LoggerFactory.getLogger(AliyunOssUpload.class);
/**阿里云API的内或外网域名*/
public static String ENDPOINT = "oss-cn-beijing.aliyuncs.com";
/**OSS签名key*/
public static String ACCESS_KEY_ID = "LTAIhlNjwcLW2C4d";
/**OSS签名密钥*/
public static String ACCESS_KEY_SECRET = "*************************";
/**存储空间名称*/
public static String BUCKETNAME = "miaomiao-image";
private OSSClient ossClient = null;
Map<String, String> returnfile = new HashMap<String,String>();
Result result=new Result();
/**
* 构造器,初始化参数。并实例化ossClient对象
*/
public AliyunOssUpload(){
// 初始化一个OSSClient
ossClient = new OSSClient(ENDPOINT,ACCESS_KEY_ID, ACCESS_KEY_SECRET);
}
/**
* 判断bucket存储空间是否已建立
* 若未建立,先创建一个Bucket
*/
public void ensureBucket() throws OSSException, ClientException {
try{
//判断bucket是否存在
boolean exists = ossClient.doesBucketExist(AliyunOssUpload.BUCKETNAME);
if(!exists){
//logger.error("bucket不存在,新建当前bucket:{}",AliyunOssUpload.BUCKETNAME);
ossClient.createBucket(AliyunOssUpload.BUCKETNAME);
}
}catch(ServiceException e){
//logger.error(e.getErrorCode() + " " + e.getErrorMessage());
throw e;
}
}
/**
* 上传文件到OSS服务器
* 如果同名文件会覆盖服务器上的
* @param file 上传文件
* @param dirFileName 上传后文件名
* @param dirName 文件目录名称 (在oss中不存在目录一说,只是用于形象的区分文件种类)
* @return Map<String, Object> map
* stauts :true 上传成功 。 false 上传失败
* msg :成功,返回文件路径。失败&#x