【折腾笔记】兰空图床使用Minio作为储存策略

前言

花了几个小时研究了一下在兰空图床中使用Minio作为存储策略,官方并没有给出太多关于minio的储存策略配置文档,我是经过反复尝试,然后根据错误日志的提示以及查阅兰空图床在GitHub上面的issues悟出来的配置方法。

因为我的兰空图床和Minio都是基于群晖的NAS设备DS423+的docker功能进行搭建,所以我只能在这样的情况下给大家进行演示,大家可以参考一下思路。

教程

  1. 打开Minio,登录后台。选择“Access Keys”,点击“Create Access Key”。

  2. 给访问钥匙命个名,方便后续维护,其他默认即可,然后点击“Create”。

  3. 在“Configuration”中配置“Region”,填写“us-east-1​”。

  4. 打开兰空图床中的“ImageService.php”文件进行编辑。

    我的兰空图床是使

好的,我理解了你的问题。如果你想在 SpringBoot 应用中使用 Minio 作为云存储服务,可以按照以下步骤进行操作: 1. 添加 Minio 客户端依赖 在 `pom.xml` 文件中添加 Minio 客户端依赖: ```xml <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.2.1</version> </dependency> ``` 2. 配置 Minio 客户端 在 `application.properties` 文件中添加以下配置: ```properties minio.url=http://localhost:9000 minio.access-key=minio minio.secret-key=minio123 minio.bucket-name=my-bucket ``` 其中,`minio.url` 是 Minio 服务的访问地址,`minio.access-key` 和 `minio.secret-key` 是访问 Minio 服务的凭证,`minio.bucket-name` 是存储对象的桶名称。 3. 实现上传文件接口 ```java @RestController public class FileController { @Autowired private MinioClient minioClient; @PostMapping("/files") public String uploadFile(@RequestParam("file") MultipartFile file) throws Exception { String fileName = file.getOriginalFilename(); InputStream inputStream = file.getInputStream(); long size = file.getSize(); String contentType = file.getContentType(); minioClient.putObject(PutObjectArgs.builder() .bucket("my-bucket") .object(fileName) .stream(inputStream, size, -1) .contentType(contentType) .build()); return "File uploaded successfully: " + fileName; } } ``` 4. 实现展示图片接口 ```java @RestController public class ImageController { @Autowired private MinioClient minioClient; @GetMapping("/images/{fileName}") public ResponseEntity<byte[]> getImage(@PathVariable String fileName) throws Exception { InputStream inputStream = minioClient.getObject(GetObjectArgs.builder() .bucket("my-bucket") .object(fileName) .build()); byte[] bytes = IOUtils.toByteArray(inputStream); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.IMAGE_JPEG); headers.setContentLength(bytes.length); return new ResponseEntity<>(bytes, headers, HttpStatus.OK); } } ``` 在这个示例中,我们定义了一个 `FileController` 和一个 `ImageController`,分别用于上传文件和展示图片。其中,`ImageController` 中的 `getImage` 方法根据文件名从 Minio 服务中获取图片,并返回 `ResponseEntity<byte[]>` 对象,该对象包含图片的二进制数据和响应头信息,用于在浏览器中展示图片。 以上就是在 SpringBoot 应用中使用 Minio 作为云存储服务的步骤。希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UPToZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值