package com.fdkankan.scene.service.impl; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.UUID; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fdkankan.common.util.FdfsUtil; import com.fdkankan.scene.entity.SceneFileMapping; import com.fdkankan.scene.httpclient.CustomHttpClient; import com.fdkankan.scene.service.FYunFileService; import com.fdkankan.scene.service.SceneFileMappingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.Objects; @Service public class FYunFileServiceImpl implements FYunFileService { @Autowired private SceneFileMappingService sceneFileMappingService; @Resource private CustomHttpClient customHttpClient; @Resource private FdfsUtil fdfsUtil; @Override public String getFileContent(String key) throws IOException { SceneFileMapping sceneFileMapping = sceneFileMappingService.getByKey(key); String content = null; try (InputStream inputStream = customHttpClient.downloadFileToInputStream(sceneFileMapping.getUrl())){ content = IoUtil.read(inputStream, StandardCharsets.UTF_8); } return content; } @Override public void uploadFile(String num, byte[] data, String key) { String suffix = "." + FileUtil.getSuffix(key); File tempFile = FileUtil.createTempFile(UUID.fastUUID().toString(), suffix, new File("/temp"), true); FileUtil.writeBytes(data, tempFile); Map mapping = fdfsUtil.uploadFile(tempFile.getAbsolutePath()); //添加记录 SceneFileMapping sceneFileMapping = sceneFileMappingService.getByKey(key); if(Objects.isNull(sceneFileMapping)){ sceneFileMapping = new SceneFileMapping(); } sceneFileMapping.setNum(num); sceneFileMapping.setFileid(mapping.get("file_id")); sceneFileMapping.setUrl(mapping.get("http_url")); sceneFileMapping.setKey(key); sceneFileMappingService.saveOrUpdate(sceneFileMapping); } @Override public void uploadFile(String num, String path, String key) { Map mapping = fdfsUtil.uploadFile(path); //添加记录 SceneFileMapping sceneFileMapping = sceneFileMappingService.getByKey(key); if(Objects.isNull(sceneFileMapping)){ sceneFileMapping = new SceneFileMapping(); } sceneFileMapping.setNum(num); sceneFileMapping.setFileid(mapping.get("file_id")); sceneFileMapping.setUrl(mapping.get("http_url")); sceneFileMapping.setKey(key); sceneFileMappingService.saveOrUpdate(sceneFileMapping); } public static void main(String[] args) { String suffix = "." + FileUtil.getSuffix("/sxx/ttt/adf.json"); File tempFile = FileUtil.createTempFile(UUID.fastUUID().toString(), suffix, new File("D:\\test2"), true); FileUtil.writeBytes("nihsd灌灌灌灌".getBytes(StandardCharsets.UTF_8), tempFile); } }