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 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; } }