sandu-common/src/main/java/com/sandu/common/file/impl/AliOssFileServiceImpl.java
@@ -21,6 +21,7 @@ import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -105,4 +106,56 @@ return uploadDto; } public FileUploadDto uploadFile(File multipartFile) { String originalFilename = multipartFile.getName(); // long size = multipartFile.get(); String suffix = FileUtil.getSuffix(originalFilename); String dayStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")); String fileName = dayStr + UUID.fastUUID()+ "." + suffix; FileUploadDto uploadDto = new FileUploadDto(); OSS ossClient = new OSSClientBuilder().build(endPoint, keyId, keySecret); try { //容器不存在,就创建 if (!ossClient.doesBucketExist(bucketName)) { ossClient.createBucket(bucketName); CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName); createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead); ossClient.createBucket(createBucketRequest); } //上传文件 PutObjectResult result = ossClient.putObject(new PutObjectRequest(bucketName, fileName, multipartFile)); //设置权限 这里是公开读 // ossClient.setBucketAcl(ossProperties.getBucketName(), CannedAccessControlList.PublicRead); if (result != null) { String url = ""; // https://BucketName.Endpoint/ObjectName if (StrUtil.isBlank(host)) { url = "https://" + bucketName + "." + endPoint + "/" + fileName; } else { if (!host.endsWith("/")) { url = host + "/" + fileName; } else { url = host + fileName; } } uploadDto.setFileUrl(url); } } catch (Exception e) { log.error(e.getMessage(), e); throw new BusinessException(e.getMessage()); } finally { //关闭 ossClient.shutdown(); } uploadDto.setOriginName(originalFilename); uploadDto.setFileName(fileName); uploadDto.setFileType(FileUtil.extName(originalFilename)); uploadDto.setStorageType(FileStorageEnums.ALIBABA.getCode()); return uploadDto; } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
@@ -6,7 +6,9 @@ import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.github.pagehelper.PageHelper; import com.sandu.common.file.FileUploadDto; import com.sandu.common.file.config.FileProperties; import com.sandu.common.file.impl.AliOssFileServiceImpl; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.common.util.ResUtils; import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightHeartbeatReportInnerFrame; @@ -18,6 +20,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.util.List; @@ -32,6 +35,7 @@ public class LightReportDataService extends BaseServiceImpl<LightReportDataMapper, LightReportData> { private final FileProperties properties; private final AliOssFileServiceImpl fileService; /** * 保存上报的灯心跳数据 @@ -72,7 +76,7 @@ PageHelper.startPage(pageNo, pageSize); List<LightReportDataBo> list = baseMapper.listReportData(keyword, deviceCode); File file = new File(properties.getUploadRootPath() + "export" + File.separator + RandomUtil.randomString(12) + ".xlsx"); File file = new File("./" + RandomUtil.randomString(12) + ".xlsx"); // File file = new File(properties.getUploadRootPath() + "export" + File.separator + RandomUtil.randomString(12) + ".xlsx"); // ClassPathResource cpr = new ClassPathResource("public/exportOrder.xlsx"); // FileUtil.mkParentDirs(file); @@ -82,9 +86,13 @@ // excelWriter.fill(list, writeSheet); // excelWriter.finish(); EasyExcel.write(file, LightReportDataBo.class).sheet("单灯数据").doWrite(list); String url = file.getPath().replace(properties.getUploadRootPath(), ""); return ResUtils.addPrefix(url); EasyExcel.write(file, LightReportDataBo.class).sheet("模版").doWrite(list); FileUploadDto fileUploadDto = fileService.uploadFile(file); // String url = file.getPath().replace(properties.getUploadRootPath(), ""); String url = fileUploadDto.getFileUrl(); file.delete(); return url; // return list; }