上传文件
MinIO提供多个语言版本SDK的支持,下边找到java版本的文档:
地址:https://docs.min.io/docs/java-client-quickstart-guide.html
最低需求Java 1.8或更高版本:
maven依赖如下:
XML <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.5.1</version> </dependency> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.8.1</version> </dependency> |
在media-service工程添加此依赖。
参数说明:
需要三个参数才能连接到minio服务。
参数 | 说明 |
Endpoint | 对象存储服务的URL |
Access Key | Access key就像用户ID,可以唯一标识你的账户。 |
Secret Key | Secret key是你账户的密码。 |
示例代码如下:
Java |
参考示例在media-service工程中 测试上传文件功能,
首先创建一个用于测试的bucket
点击“Manage”修改bucket的访问权限
选择public权限
上传文件
测试代码如下:
以下代码都是经过我自己的简化的,简化版,官方给的参考文档里面的东西很多,有很多用不到
Java /** * @author Mr.M * @version 1.0 * @description 测试minio上传文件、删除文件、查询文件 * @date 2023/2/20 14:42 */ public class MinIOTest { static MinioClient minioClient = MinioClient.builder() //自己服务器地址+端口号 .endpoint("http://26.252.208.115:9090") //登录的账户密码 .credentials("minioadmin", "minioadmin") .build(); //上传文件,指定桶内的子目录 @Test public void upload() { try { UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder() //桶名 .bucket("mediafiles") //test:是mediafiles里的文件路径,文件名:Java学习路线.md .object("test/Java学习路线.md") //自己电脑的文件路径,进行上传 .filename("D:\\Desktop\\code-roadmap-main\\code-roadmap-main\\docs\\roadmap\\Java学习路线.md") .build(); //上传 minioClient.uploadObject(uploadObjectArgs); System.out.println("上传成功了"); } catch (Exception e) { System.out.println("上传失败"); } } } |
执行main方法,共上传两个文件,1.mp4上传到桶根目录下,1.avi上传到 桶中的avi目录下,avi目录会自动创建。
上传成功,通过web控制台查看文件,并预览文件。
下面就是上传成功了
删除文件
下边测试删除文件
参考:https://docs.min.io/docs/java-client-api-reference#removeObject
//删除文件 @Test public void delete() { try { //查询要删除的文件在哪个桶,然后进行删除文件 RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder().bucket("mediafiles").object("test/Java学习路线.md").build(); minioClient.removeObject(removeObjectArgs); } catch (Exception e) { } } |
查询文件
通过查询文件查看文件是否存在minio中。
参考:https://docs.min.io/docs/java-client-api-reference#getObject
//查询文件 @Test public void getFile() { //要查询的桶和文件名 GetObjectArgs getObjectArgs = GetObjectArgs.builder().bucket("mediafiles").object("Java学习路线.md").build(); try ( FilterInputStream inputStream = minioClient.getObject(getObjectArgs); //下面路径是输出到自己电脑的位置 FileOutputStream outputStream = new FileOutputStream(new File("D:\\Desktop\\code-roadmap-main\\code-roadmap-main\\docs\\roadmap\\Java学习路线11.md")); ) { if (inputStream != null) { IOUtils.copy(inputStream, outputStream); } } catch (Exception e) { } } |