mitao
2024-06-06 3d2b51ea4520533de5e78f88dddf5b5c7dce4247
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
package com.sinata.core.util.huawei.obs;
 
import cn.hutool.core.util.StrUtil;
import com.obs.services.ObsClient;
import com.sinata.core.config.HuaWeiConfig;
import java.io.ByteArrayInputStream;
import org.springframework.web.multipart.MultipartFile;
 
import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;
 
public class ObsUploadUtil {
 
    public static final String https = "https://";
    public static final String endPoint = "obs.cn-southwest-2.myhuaweicloud.com";
    public static final String bucketName = "meitianmeiya";
    public static final String obsDomain = https + bucketName + "." + endPoint + "/";
 
 
    public static String obsUpload(MultipartFile file, String dir) throws IOException {
        // 文件目录
        dir = StrUtil.isBlank(dir) ? "img/" : dir + "/";
 
        // CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
        String objectName = "";
        if (file != null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename() != null) {
            // 创建ObsClient实例
            ObsClient obsClient = new ObsClient(HuaWeiConfig.AK, HuaWeiConfig.SK, https + endPoint);
 
            //获得指定文件的输入流
            InputStream content = file.getInputStream();
            String originalFilename = file.getOriginalFilename();
            String uuid = UUID.randomUUID().toString().replaceAll("-", "");
            objectName = dir + uuid + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
 
            // 上传对象至OBS
            //obsClient.putObject(bucketName, uuid, new ByteArrayInputStream("Hello OBS".getBytes()));
            obsClient.putObject(bucketName, objectName, content);
 
            if (objectName != null && !"".equals(objectName)) {
                objectName = obsDomain + objectName;
            }
 
            // 关闭obsClient,全局使用一个ObsClient客户端的情况下,不建议主动关闭ObsClient客户端
            obsClient.close();
        }
        return objectName;
    }
    public static String obsUploadInputStream(InputStream is, String dir,String fileName) throws IOException {
        // 文件目录
        dir = StrUtil.isBlank(dir) ? "excel/" : dir + "/";
 
        String objectName = "";
        // 创建ObsClient实例
        ObsClient obsClient = new ObsClient(HuaWeiConfig.AK, HuaWeiConfig.SK, https + endPoint);
 
        //获得指定文件的输入流
        objectName = dir +  fileName;
 
        // 上传对象至OBS
        obsClient.putObject(bucketName, objectName, is);
 
        if (objectName != null && !"".equals(objectName)) {
            objectName = obsDomain + objectName;
        }
        // 关闭obsClient,全局使用一个ObsClient客户端的情况下,不建议主动关闭ObsClient客户端
        obsClient.close();
        return objectName;
    }
}