admin
2021-07-30 19533a17aa55fafc70d0a385928e785cb50e1ebc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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;
    }
}