2020-09-30 09:47:22 +08:00
|
|
|
package com.cowr.common.oss;
|
|
|
|
|
|
|
|
|
|
import com.aliyun.oss.OSSClient;
|
2020-11-03 14:27:22 +08:00
|
|
|
import com.aliyun.oss.model.ObjectListing;
|
2020-09-30 09:47:22 +08:00
|
|
|
import com.aliyun.oss.model.ObjectMetadata;
|
|
|
|
|
import com.jfinal.kit.StrKit;
|
|
|
|
|
import com.jfinal.log.Log;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.net.URLEncoder;
|
|
|
|
|
|
|
|
|
|
public class OSSKit {
|
|
|
|
|
private static Log log = Log.getLog(OSSKit.class);
|
|
|
|
|
private static OSSClient _ossClient;
|
|
|
|
|
private static String bucketName;
|
|
|
|
|
|
2020-10-14 16:51:05 +08:00
|
|
|
private static String endpoint;
|
|
|
|
|
private static String accessKeyId = "LTAIqQ3TXBgNGBWi";
|
|
|
|
|
private static String accessKeySecret = "CGbPXdfX4xca3uaN2cOmTzjsG4jd6O";
|
2020-09-30 09:47:22 +08:00
|
|
|
|
2020-10-14 16:51:05 +08:00
|
|
|
public static void init(String endpoint, String bucketName) {
|
|
|
|
|
OSSKit.endpoint = endpoint;
|
2020-09-30 09:47:22 +08:00
|
|
|
OSSKit.bucketName = bucketName;
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-14 16:51:05 +08:00
|
|
|
public static void start() {
|
|
|
|
|
try {
|
|
|
|
|
OSSKit._ossClient = new OSSClient(OSSKit.endpoint, OSSKit.accessKeyId, OSSKit.accessKeySecret);
|
|
|
|
|
|
|
|
|
|
if (!OSSKit._ossClient.doesBucketExist(OSSKit.bucketName)) {
|
|
|
|
|
log.error("bucket %s 不存在", OSSKit.bucketName);
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
log.error(e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static boolean stop() {
|
|
|
|
|
if (OSSKit._ossClient != null) {
|
|
|
|
|
OSSKit._ossClient.shutdown();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-30 09:47:22 +08:00
|
|
|
public static boolean putObject(String key, File file) throws Exception {
|
|
|
|
|
if (_ossClient == null) {
|
|
|
|
|
log.error("没有初始化 OSSMgrClient");
|
2020-10-14 16:51:05 +08:00
|
|
|
|
|
|
|
|
OSSKit.start();
|
|
|
|
|
|
|
|
|
|
if (_ossClient == null) {
|
|
|
|
|
log.error("OSSMgrClient 初始化失败");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2020-09-30 09:47:22 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!StrKit.notBlank(key) || file == null || !file.exists() || file.isDirectory()) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long st = System.currentTimeMillis();
|
|
|
|
|
|
|
|
|
|
ObjectMetadata meta = new ObjectMetadata();
|
|
|
|
|
meta.setContentDisposition("attachment; filename=" + URLEncoder.encode(file.getName(), "UTF-8"));
|
|
|
|
|
|
|
|
|
|
_ossClient.putObject(bucketName, key, file, meta);
|
|
|
|
|
|
|
|
|
|
log.debug("oss put time: " + (System.currentTimeMillis() - st) + ", file size: " + file.length());
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static boolean delObject(String key) throws Exception {
|
|
|
|
|
if (_ossClient == null) {
|
|
|
|
|
log.error("没有初始化 OSSMgrClient");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (_ossClient.doesObjectExist(bucketName, key)) {
|
|
|
|
|
_ossClient.deleteObject(bucketName, key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2020-11-03 14:27:22 +08:00
|
|
|
|
|
|
|
|
public static ObjectListing list(String prefix){
|
|
|
|
|
if (_ossClient == null) {
|
|
|
|
|
log.error("没有初始化 OSSMgrClient");
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return _ossClient.listObjects(bucketName, prefix);
|
|
|
|
|
}
|
2020-09-30 09:47:22 +08:00
|
|
|
|
|
|
|
|
// public static void main(String[] args) {
|
|
|
|
|
// new OSSPlugin("oss-cn-shenzhen.aliyuncs.com", "hsjygl").start();
|
|
|
|
|
// ObjectListing list = OSSKit.getCli().listObjects(new ListObjectsRequest("hsjygl").withMaxKeys(1000).withPrefix("file"));
|
|
|
|
|
//
|
|
|
|
|
// List<OSSObjectSummary> arr = list.getObjectSummaries();
|
|
|
|
|
//
|
|
|
|
|
// while (arr.size() > 999){
|
|
|
|
|
// System.out.println("继续删除:" + arr.size());
|
|
|
|
|
//
|
|
|
|
|
// for(OSSObjectSummary obj : arr){
|
|
|
|
|
// if(obj.getSize() == 0){
|
|
|
|
|
// continue;
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// if( obj.getLastModified().getTime() < System.currentTimeMillis() - 4 * 60 * 60 * 1000 ){
|
|
|
|
|
// System.out.println(obj.getKey() + " " + obj.getLastModified() + " " + obj.getSize());
|
|
|
|
|
// OSSKit.getCli().deleteObject("hsjygl", obj.getKey());
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// arr = list.getObjectSummaries();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
//// System.out.println(list);
|
|
|
|
|
// }
|
|
|
|
|
}
|