springboot中如何使用minio存储容器

网友投稿 1066 2022-11-02

springboot中如何使用minio存储容器

springboot中如何使用minio存储容器

目录docker运行java导包配置文件操作本地浏览设置总结

docker运行

docker run

-p 9000:9000

-p 9001:9001

-v /mydata/minio/data:/data

minio/minio server /data --console-address ":9001

java导包

最好是这个版本,其他版本尝试过都出bug了

io.miniOvUHGReEo

minio

8.2.1

配置文件

spring:

# 上传文件大小设置

servlet:

multipart:

enabled: true

max-file-size: 50MB

minio:

endpoint: xxx:9000

accesskey: xxx

secretkey: xxx

bucketName: xxx

操作

1、编写一个属性文件

@Data

@Component

@ConfigurationProperties(prefix = "minio") // 从配置文件的前缀拿

public class MinioProperties {

private String endpoint;

private String accessKey;

private String secretKey;

}

2、编写一个minioClient

@Configuration

public class MinioConfig {

@Resource

private MinioProperties minioProperties;

@Bean

public MinioClient minioClient() {

System.out.println(minioProperties.getAccessKey());

System.out.println(minioProperties.getSecretKey());

MinioClient minioClient = MinioClient.builder()

.endpoint(minioProperthttp://ies.getEndpoint())

.credentials(minioProperties.getAccessKey(), minioProperties.getSecretKey())

.build();

return minioClient;

}

}

3、上传文件Api

public class MinioServiceImpl implements MinioService {

@Value("${minio.bucketName}")

private String bucketName;

@Value("${minio.endpoint}")

private String endPoint;

@Resource

private MinioClient minioClient;

@Override

public List uploadFile(MultipartFile[] file) throws ServerException, InsufficientDataException, ErrorResponseException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {

if (file == null || file.length == 0) {

throw new APIException(ResultCode.PARAM_IS_BLANK);

}

List fileUrlList = new ArrayList<>(file.length);

String url = "";

for (MultipartFile multipartFile : file) {

// 1.获取文件名

String originalFilename = multipartFile.gehttp://tOriginOvUHGReEalFilename();

// 2.截取后缀名

String imgSuffix = originalFilename.substring(originalFilename.lastIndexOf("."));

// 3.生成唯一名

String newFileName = UUID.randomUUID().toString() + imgSuffix;

// 4.日期目录

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");

String dataPath = dateFormat.format(new Date());

// 5.合成路径

String finalFileName = dataPath + "/" + newFileName;

// 别忘了bucketName

url = endPoint + "/" + bucketName + "/" + finalFileName;

try {

// 文件上传

InputStream in = multipartFile.getInputStream();

minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(finalFileName).stream(

in, multipartFile.getSize(), -1)

.contentType(multipartFile.getContentType())

.build());

in.close();

fileUrlList.add(url);

} catch (IOException e) {

throw new APIException(ResultCode.COMMON_FAIL);

}

}

return fileUrlList;

}

}

本地浏览设置

通过上面这串url就可以直接访问图片了

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:react小球抛物线下落
下一篇:[小木轮]图片浏览器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~