Java import com.dkd.common.config.MinIOConfig; import com.dkd.common.exception.ServiceException; import com.dkd.common.utils.StringUtils; import io.minio.MinioClient; import io.minio.PutObjectArgs; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID;
/** 封装minio客户端方法 上传文件 */ @Slf4j @Component public class MinIOUtils{ @Autowired private MinIOConfig minIOConfig; @Autowired private MinioClient minioClient;
/** * 上传文件到MinIO * * @param file * @throws NoSuchAlgorithmException * @throws IOException * @throws InvalidKeyException */ public String uploadFile(MultipartFile file) { try { String newFileName = new SimpleDateFormat(“yyyy/MM/dd/”).format(new Date()) + UUID.randomUUID().toString() + “.” + StringUtils.substringAfterLast(file.getOriginalFilename(), “.”);
PutObjectArgs putObjectArgs = PutObjectArgs.builder() .object(newFileName) .contentType(file.getContentType()) .stream(file.getInputStream(), file.getSize(), -1) // partSize -1表示整体(不分片)上传 .bucket(minIOConfig.getBucket()) .build(); minioClient.putObject(putObjectArgs); StringBuilder stringBuilder = new StringBuilder(minIOConfig.getReadPath()); stringBuilder. append(“/”). append(minIOConfig.getBucket()). append(“/”). append(newFileName); return stringBuilder.toString(); } catch (Exception ex) { log.error(“minio put file error.”, ex); throw new ServiceException(“上传文件失败”); } } } |
Comments NOTHING