mirror of
https://gitee.com/lxp135/minio-plus.git
synced 2025-12-06 08:58:25 +08:00
DEBUG:修正某些情况下,文件流没有正确关闭的问题。
This commit is contained in:
parent
f550db2b77
commit
a2adf3b411
@ -1,11 +1,6 @@
|
||||
package org.liuxp.minioplus.core.common.utils;
|
||||
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import net.coobird.thumbnailator.Thumbnails;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* 对象存储工具类
|
||||
@ -31,22 +26,4 @@ public class CommonUtil {
|
||||
return LocalDateTimeUtil.format(LocalDateTimeUtil.now(), "yyyy/MM");
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据文件流和重设宽度进行图片压缩
|
||||
* @param inputStream 文件流
|
||||
* @param width 宽度
|
||||
* @return 压缩后的图片文件流
|
||||
* @throws IOException IO异常
|
||||
*/
|
||||
public static ByteArrayOutputStream resizeImage(InputStream inputStream, int width)throws IOException {
|
||||
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||
|
||||
Thumbnails.of(inputStream)
|
||||
.width(width)
|
||||
.outputQuality(0.9f)
|
||||
.toOutputStream(outputStream);
|
||||
|
||||
return outputStream;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,9 @@ import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import lombok.Cleanup;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.coobird.thumbnailator.Thumbnails;
|
||||
import org.liuxp.minioplus.api.model.bo.CreateUploadUrlReqBO;
|
||||
import org.liuxp.minioplus.api.model.bo.CreateUploadUrlRespBO;
|
||||
import org.liuxp.minioplus.api.model.dto.FileMetadataInfoDTO;
|
||||
@ -400,12 +402,24 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
||||
private void generatePreviewImage(FileMetadataInfoVo metadata) {
|
||||
try {
|
||||
if (Boolean.FALSE.equals(metadata.getIsPreview())) {
|
||||
|
||||
// 获取原图的bytes
|
||||
byte[] imageOriginBytes = minioS3Client.getObject(StorageBucketEnums.IMAGE.getCode(), metadata.getStoragePath() + "/" + metadata.getFileMd5());
|
||||
// 压缩缩略图
|
||||
ByteArrayOutputStream largeImage = CommonUtil.resizeImage(new ByteArrayInputStream(imageOriginBytes), properties.getThumbnail().getSize());
|
||||
byte[] largeImageBytes = largeImage.toByteArray();
|
||||
minioS3Client.putObject(StorageBucketEnums.IMAGE_PREVIEW.getCode(), CommonUtil.getObjectName(metadata.getFileMd5()), new ByteArrayInputStream(largeImageBytes), largeImageBytes.length, metadata.getFileMimeType());
|
||||
|
||||
// 定义文件流
|
||||
@Cleanup ByteArrayInputStream imageOriginInputStream = new ByteArrayInputStream(imageOriginBytes);
|
||||
@Cleanup ByteArrayOutputStream previewImage = new ByteArrayOutputStream();
|
||||
|
||||
// 根据文件流和重设宽度进行图片压缩
|
||||
Thumbnails.of(imageOriginInputStream)
|
||||
.width(properties.getThumbnail().getSize())
|
||||
.outputQuality(0.9f)
|
||||
.toOutputStream(previewImage);
|
||||
|
||||
byte[] previewImageBytes = previewImage.toByteArray();
|
||||
@Cleanup ByteArrayInputStream previewImageInputStream = new ByteArrayInputStream(previewImageBytes);
|
||||
|
||||
minioS3Client.putObject(StorageBucketEnums.IMAGE_PREVIEW.getCode(), CommonUtil.getObjectName(metadata.getFileMd5()), previewImageInputStream, previewImageBytes.length, metadata.getFileMimeType());
|
||||
metadata.setIsPreview(Boolean.TRUE);
|
||||
FileMetadataInfoUpdateDTO fileMetadataInfoUpdateDTO = BeanUtil.copyProperties(metadata, FileMetadataInfoUpdateDTO.class);
|
||||
metadataRepository.update(fileMetadataInfoUpdateDTO);
|
||||
@ -421,7 +435,8 @@ public class StorageEngineServiceImpl implements StorageEngineService {
|
||||
@Override
|
||||
public Boolean createFile(FileMetadataInfoSaveDTO saveDTO, byte[] fileBytes) {
|
||||
// 写入文件
|
||||
return createFile(saveDTO, new ByteArrayInputStream(fileBytes));
|
||||
@Cleanup ByteArrayInputStream inputStream = new ByteArrayInputStream(fileBytes);
|
||||
return createFile(saveDTO, inputStream);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package org.liuxp.minioplus.core.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.lang.Pair;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user