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