package com.yeshi.buwan.util;
|
|
import java.io.ByteArrayInputStream;
|
import java.io.File;
|
import java.io.FileInputStream;
|
import java.io.FileNotFoundException;
|
import java.io.InputStream;
|
import java.net.URL;
|
import java.util.Date;
|
import java.util.List;
|
|
import org.apache.log4j.Logger;
|
|
import com.aliyun.oss.OSSClient;
|
import com.aliyun.oss.model.DeleteObjectsRequest;
|
import com.aliyun.oss.model.PutObjectResult;
|
|
/**
|
* 阿里云OSS存储
|
*/
|
public class OSSManager {
|
|
Logger logger = Logger.getLogger(OSSManager.class);
|
|
final String GETURL = "buwanimg.oss-cn-qingdao.aliyuncs.com";// 内网-zbsq.oss-cn-qingdao-internal.aliyuncs.com
|
// 外网-http://zbsq.img-cn-qingdao.aliyuncs.com
|
final String UPLOAD_URL = "http://oss-cn-qingdao.aliyuncs.com";// 内网-http://oss-cn-qingdao-internal.aliyuncs.com
|
final String UPLOAD_URL_INTERNAL = "http://oss-cn-qingdao.aliyuncs.com";// "http://oss-cn-qingdao-internal.aliyuncs.com";
|
// 外网-http://oss-cn-qingdao.aliyuncs.com
|
// 外网-zbsq.oss-cn-qingdao.aliyuncs.com
|
final String AK = "YQGAzGNuEnCGbpWQ";
|
final String AKS = "EZkz2uhfCn3yOQp5AfUpDiPaLiMKEa";
|
|
final String BUCKET = "buwanimg";
|
|
static OSSManager instance;
|
OSSClient client = null;
|
|
public static OSSManager getInstance() {
|
if (instance == null)
|
instance = new OSSManager();
|
return instance;
|
}
|
|
private void openOss(String url) {
|
// if (client == null)
|
client = new OSSClient(url, AK, AKS);
|
}
|
|
private void closeOss() {
|
if (client != null)
|
client.shutdown();
|
}
|
|
/**
|
* 上传文件
|
*
|
* @param f
|
* @param key
|
* @return
|
*/
|
|
public String uploadFile(File f, String key) {
|
if (f == null || !f.exists())
|
return "";
|
// 上传文件流
|
openOss(UPLOAD_URL_INTERNAL);
|
try {
|
InputStream inputStream = new FileInputStream(f);
|
PutObjectResult result = client.putObject(BUCKET, key, inputStream);
|
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
key = "";
|
} catch (Exception e) {
|
e.printStackTrace();
|
logger.error(e.getMessage());
|
key = "";
|
}
|
closeOss();
|
return key;// Constant.ALIYUN_IMAGE + key;
|
}
|
|
public void deleteObject(String key) {
|
// 上传文件流
|
openOss(UPLOAD_URL_INTERNAL);
|
client.deleteObject(BUCKET, key);
|
closeOss();
|
}
|
|
/**
|
* 删除文件列表
|
*
|
* @param keys
|
*/
|
public void deleteObjects(List<String> keys) {
|
// 上传文件流
|
openOss(UPLOAD_URL_INTERNAL);
|
client.deleteObjects(new DeleteObjectsRequest(BUCKET).withKeys(keys));
|
closeOss();
|
}
|
|
public boolean createDir(String dirname) {
|
openOss(UPLOAD_URL_INTERNAL);
|
PutObjectResult result = client.putObject(BUCKET, dirname + "/", new ByteArrayInputStream(new byte[0]));
|
closeOss();
|
return true;
|
}
|
|
public String getUrl(String key) {
|
openOss(UPLOAD_URL);
|
// 设置URL过期时间为2小时
|
Date expiration = new Date(new Date().getTime() + 1000 * 60 * 60 * 2L);
|
// 生成URL
|
URL url = client.generatePresignedUrl(BUCKET, key, expiration);
|
closeOss();
|
if (url != null) {
|
return url.toString();
|
}
|
return null;
|
}
|
}
|