ke
2024-05-20 c863db455fe6590c2901d51a1606c8518e84119e
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package cn.gistack.resource.feign;
 
import cn.gistack.resource.builder.oss.OssBuilder;
import cn.gistack.resource.entity.FormateTuEntity;
import cn.gistack.resource.entity.QieTuEntity;
import cn.gistack.resource.panoramaUtils.QietuResult;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import org.apache.commons.io.FileUtils;
import org.springblade.core.oss.model.BladeFile;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
 
/**
 * @author kelu
 */
@NonDS
@RestController
@AllArgsConstructor
public class OssClient implements IOssClient{
 
    /**
     * 对象存储构建类
     */
    private final OssBuilder ossBuilder;
    @Override
    @PostMapping(UPLOAD_QIETU)
    public R uploadQietu(QieTuEntity qieTuEntity) throws IOException {
        HashMap<String,String> qietuHashMap = qieTuEntity.getQietuHashMap();
//        System.err.println("切图的路径:"+qietuHashMap);
 
        String resGuid = qieTuEntity.getResGuid();
 
        List<String> qieTuUrlList = new ArrayList<String>();
        String urlHead = null;
        Set<String> mapKey = qietuHashMap.keySet();
        if(qietuHashMap != null && qietuHashMap.size()>0) {
            for (String picQName : mapKey) {
                String url = qietuHashMap.get(picQName);
                Path qietuPath = Paths.get(url);
                File qietufile = qietuPath.toFile();
                FileInputStream fileInputStream = new FileInputStream(qietufile);
                BladeFile bladeFile = ossBuilder.templateByPrefixPathPanorama("panorama", resGuid).putFile(picQName, fileInputStream);
                fileInputStream.close(); // 关闭文件流
 
                String link = bladeFile.getLink();
                qieTuUrlList.add(link);// 上传后的图片路径
                urlHead = link.replace(picQName,"");
 
                // 切图上传完成后删除
                if (qietufile.exists()) {
                    // 删除指定文件,不存在报异常
                    FileUtils.forceDelete(qietufile);
                }
            }
        }
 
 
        String jsonString = JSON.toJSONString(qieTuUrlList);
 
 
        HashMap<String, String> stringStringHashMap = new HashMap<>();
        stringStringHashMap.put("qturlList",jsonString);
        stringStringHashMap.put("urlHead", urlHead);
 
        QieTuEntity result = new QieTuEntity();
        result.setQietuHashMap(stringStringHashMap);
 
        return R.data(result);
    }
 
    @Override
    @PostMapping(UPLOAD_FORMATETU)
    public R uploadFormate(QieTuEntity qieTuEntity) throws IOException {
 
        ArrayList<FormateTuEntity> list = qieTuEntity.getList();
 
 
//        Set<String> mapKey = qietuHashMap.keySet();
        if(list != null && list.size()>0) {
            for (FormateTuEntity item : list) {
 
                String picName = item.getPicName();
                String url = item.getLinshiUrl();
                Path qietuPath = Paths.get(url);
                File qietufile = qietuPath.toFile();
                FileInputStream fileInputStream = new FileInputStream(qietufile);
                BladeFile bladeFile = ossBuilder.template().putFile(picName, fileInputStream);
                fileInputStream.close(); // 关闭文件流
 
                String link = bladeFile.getLink();
 
                // 格式化后的临时图片上传完成后删除临时文件
                if (qietufile.exists()) {
                    // 删除指定文件,不存在报异常
                    FileUtils.forceDelete(qietufile);
                }
 
 
                item.setLinshiUrl(link);
 
            }
        }
        QieTuEntity result = new QieTuEntity();
        result.setList(list);
 
        return R.data(result);
    }
 
    @PostMapping(value = UPLOAD_FILE)
    public String uploadFile(String fileName,  MultipartFile file) throws Exception{
 
//        InputStream inputStream = new ByteArrayInputStream(bytes);
 
        BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
 
        String link = bladeFile.getLink();
        if (link.indexOf("http://10.42.6.251:8082") != -1) {
            link= link.replace("http://10.42.6.251:8082", "https://sk.hubeishuiyi.cn/gminio");
        }
        return link;
    }
}