系列文章目录
文章目录
- 系列文章目录
- 前言
前言
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
Minio 是个基于 Golang 编写的开源对象存储套件,基于Apache License v2.0开源协议,虽然轻量,却拥有着不错的性能。
它兼容亚马逊S3云存储服务接口。可以很简单的和其他应用结合使用,例如 NodeJS、Redis、MySQL等。
下载 (官网:https://min.io/ )
cd /tmp
wget https://dl.min.io/server/minio/release/linux-amd64/minio
创建安装目录,设置账号密码
mkdir -p /home/minio/data
chmod +x minio
cp minio /home/minio/data
export MINIO_ACCESS_KEY=minioadmin
export MINIO_SECRET_KEY=minioadmin
启动服务
#启动,该启动为前台启动
./minio server /home/minio/data
# 后台启动,默认端口方式 9000
nohup ./minio server /home/minio/data > /home/minio/data/minio.log 2>&1 &
#后台启动,自定义端口方式
nohup ./minio server /home/minio/data --address=0.0.0.0:9009 >/home/minio/data/minio.log 2>&1 &
查看服务是否启动成功
ps -ef | grep minio
访问服务,根据实际情况修改IP和端口
http://192.168.206.22:9000
创建存储桶
配置存储桶公开访问
默认配置下,访问存储桶是需要请求授权的。但是在实际场景下,我们往往希望允许直接访问。所以我们要把访问规则(Access Policy)设置为:Public 。这样我们就可以直接访问了,文件的访问地址的格式为 http://IP:Port/{bucket}/{fileName}。
注意 端口已实际启动端口为准。
例如:http://192.168.206.22:9000/test/wallhaven-p989gm_1920x1080.png
MinIO Java Client SDK提供简单的API来访问任何与Amazon S3兼容的对象存储服务。
官方demo: https://github.com/minio/minio-java
官方文档:https://min.io/docs/minio/linux/developers/java/API.html
新版 MinIO和旧版在 API使用上还是有一定的区别,比如:新版 MinIO采用 Builder构建者模式来构造 MinioClient对象。所以,官方demo仅供参考,尽量查看英文官方文档。
引入依赖
<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.4</version>
</dependency>
编写HelloWorld程序
package com.example.demo;import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;import java.util.UUID;public class MinioTest {public static void main(String[] args) {try {// 初始化连接MinioClient minioClient =MinioClient.builder().endpoint("http://192.168.206.22:9000").credentials("hPnrX1KRjXqwE2Ef3rXE", "AJwbFRMFtzbrKe5bUlNdD5jR5RYwS5q2lw08GVvk")// 直接用密码也可以,不建议// .credentials("minioadmin", "minioadmin").build();String bucketName = "test";// 检查存储桶是否存在,不存在则创建boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());if (!found) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());} else {System.out.println("存储桶 " + bucketName + " 已存在.");}// 上传文件到桶minioClient.uploadObject(UploadObjectArgs.builder().bucket(bucketName) // 指定桶.object(UUID.randomUUID() + ".jpg") // 文件在桶里面名字,防止冲突用UUID命名.filename("D:\\Temp\\HD00001.jpg") // 文件路径.build());System.out.println("上传成功");} catch (Exception e) {e.printStackTrace();}}
}
其他使用示例,参考官方