ke
2024-05-13 d31e928394ad711a86a3d93caa6470b1abb96a39
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
package cn.gistack.resource.feign;
 
import cn.gistack.resource.builder.oss.OssBuilder;
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 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 {
//    public R uploadQietu(HashMap<String,String> qietuHashMap,String resGuid) throws IOException {
        HashMap<String,String> qietuHashMap = qieTuEntity.getQietuHashMap();
        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);
    }
}