package com.cloudroam.extension.file;
|
|
import com.cloudroam.module.file.AbstractUploader;
|
import com.cloudroam.module.file.FileProperties;
|
import com.cloudroam.module.file.FileTypeEnum;
|
import com.cloudroam.module.file.FileUtil;
|
import com.cloudroam.util.DateUtils;
|
import com.cloudroam.util.MinioUtil;
|
import lombok.Data;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.context.annotation.Configuration;
|
|
import java.io.ByteArrayInputStream;
|
|
/**
|
* MINIO 文件上传类
|
*/
|
//@Data
|
//@Configuration
|
//@ConfigurationProperties(prefix = "lin.file.minio")
|
@Slf4j
|
public class MinioUploader extends AbstractUploader {
|
|
// minio上传的地址
|
@Value("${lin.file.minio.url}")
|
private String url;
|
// minio上传的accessKey
|
@Value("${lin.file.minio.accessKey}")
|
private String accessKey;
|
// minio上传的secretKey
|
@Value("${lin.file.minio.secretKey}")
|
private String secretKey;
|
|
@Value("${lin.file.minio.bucket}")
|
private String bucket;
|
|
@Autowired
|
private FileProperties fileProperties;
|
|
@Autowired
|
private MinioUtil minioUtil;
|
|
private String curPath;
|
|
|
@Override
|
protected FileProperties getFileProperties() {
|
return fileProperties;
|
}
|
|
/**
|
* 处理一个文件数据
|
*
|
* @param bytes 文件数据,比特六
|
* @param newFilename 新文件名称
|
* @return 处理是否成功,如果出现异常则返回false,避免把失败的写入数据库
|
*
|
*/
|
@Override
|
protected boolean handleOneFile(byte[] bytes, String newFilename) {
|
|
|
// 不加bucket的文件路径
|
String path=curPath+ newFilename;
|
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(bytes);
|
try {
|
// 不管有没有bucket都执行创建bucket命令
|
minioUtil.createBucket(bucket);
|
minioUtil.uploadFile(byteInputStream,bucket,path);
|
log.info("minio文件上传成功".toString());
|
return true;
|
} catch (Exception e) {
|
// throw new RuntimeException(e);
|
log.error("minio upload file error: {}", e.getMessage());
|
return false;
|
}
|
|
}
|
|
@Override
|
protected String getStorePath(String newFilename) {
|
curPath=DateUtils.getCurrentDateCatalog();
|
return url+bucket+curPath+newFilename;
|
}
|
|
@Override
|
protected String getFileType() {
|
return FileTypeEnum.MINIO.getValue();
|
}
|
}
|