阿里云OSS断点续传(Java版本)
在工作中发现开发的某项功能在用户网络环境差的时候部分图片无法显示,通过Review代码之后发现原来是图片上传到了国外的亚马逊服务器上,经过讨论决定将图片上传到国内阿里云的OSS上,下面是通过上网查找资料和看官网API之后写的一个Java版本的断点续传的demo。
注意:这里是上传到你自己的服务器后,然后再上传到阿里云OSS,不是直接通过前端上传的
首先 , 添加maven
<!-- 阿里云OSS服务 -->
<!-- https://mvnrepository.com/artifact/com.aliyun.oss/aliyun-sdk-oss -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.3.0</version>
</dependency>
根据官网断点续传写demo
阿里云官网:https://help.aliyun.com/document_detail/31886.html?spm=a2c4g.11186623.6.564.52d735542GHP78
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.Bucket;
import com.aliyun.oss.model.Callback;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.UploadFileRequest;
import com.tinno.gamecenter.biz.util.PropertiesHelper;
import com.tinno.gamecenter.common.beans.OssUploadBean;
import com.tinno.gamecenter.core.exception.TinnoCommonException;
/**
* 阿里云文件存储服务器相关
* @Title: OssUtil.java
* @author 王武明
* @date 2018年9月18日 下午1:50:01
* @version V1.0
*/
public class OssUtil
{
/**
* 日志
*/
private static Logger logger = Logger.getLogger(OssUtil.class);
// 阿里云API的内或外网域名
private static String ALIYUN_OSS_ENDPOINT;
// 阿里云API的密钥Access Key ID
private static String ALIYUN_ACCESS_KEY_ID;
// 阿里云API的密钥Access Key Secret
private static String ALIYUN_OSS_ACCESS_KEY_SECRET;
// bucket
private static String ALIYUN_OSS_BUCKET_ID;
static
{
Properties properties = PropertiesHelper.loadPropertiesFile("/config.properties");
ALIYUN_OSS_ENDPOINT = properties.containsKey("ALIYUN_OSS_ENDPOINT") == false ? "" : PropertiesHelper.getString("ALIYUN_OSS_ENDPOINT", null, properties);
ALIYUN_ACCESS_KEY_ID = properties.containsKey("ALIYUN_ACCESS_KEY_ID") =