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 qietuHashMap = qieTuEntity.getQietuHashMap(); // System.err.println("切图的路径:"+qietuHashMap); String resGuid = qieTuEntity.getResGuid(); List qieTuUrlList = new ArrayList(); String urlHead = null; Set 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 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 list = qieTuEntity.getList(); // Set 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; } }