1.下载安装包
进入MinIO官网

点击 linux-amd64(上图中圈起来的地方)
点击miio(下图中圈起来的地方),即开始下载minio的运行程序

2.配置
将上面步骤下载好的文件复制到Linux中

赋予执行权限
chmod +x minio
minio变绿

创建minio数据存放路径
mkdir -p /home/minio/data

赋予每个人整个minio文件夹读、写的权限

配置用于登录minio控制台的用户和密码
vim /etc/profile
文件最后一行加上

使配置生效
source /etc/profile
3.编写Shell启动脚本
下面内容复制
minio_pid_count=ps -ef|grep "minio server"|wc -l
#如果有minio进程则杀掉
if (($minio_pid_count 1));
then ./stop
fi
echo "minio is starting..."
console_port=9099 #控制台端口
server_port=9098 #服务端口
log_path=/home/minio/minio.log #日志文件路径(自定义)
minio_program_path=/home/minio/minio #minio应用程序所在路径
data_dir=/home/minio/data #数据存放路径(自定义)
#使用一些参数并 以后台运行的方式启动MinIO,同时写入日志文件
nohup $minio_program_path server $data_dir --console-address ":$console_port" --address ":$server_port" $log_path 2&1 &
echo "console-port:$console_port"
echo "api-port:$server_port"
echo "minio-log-path:$log_path"
echo "MINIO_ROOT_USER:${MINIO_ROOT_USER}"
echo "MINIO_ROOT_PASSWORD:${MINIO_ROOT_PASSWORD}"
echo "certs_dir:${certs_dir}"
echo "minio is started successfully!"

赋予执行权限
停止脚本编写
vim stop

下面内容复制
pid=ps -ef | grep "minio server" | grep -v grep | awk '{print $2}'
kill -9 $pid
echo "minio is stopped"
4.启动
sh start.sh
启动成功,可见控制台端口是9099

防火墙开放9099端口
firewall-cmd --add-port=9099/tcp --permanent
重启防火墙生效
firewall-cmd --reload

5.Java简单使用MinIO
5.1创建Access Key
进入minio控制台,点击Access Keys,记得保存key和秘钥一旦创建没法看秘钥了


5.2编写简单代码测试上传功能
导入依赖或对应依赖包,我这里是maven项目,直接导入依赖
io.minio
minio
8.0.0
注意:我这里使用9098作为minio服务端口,也需要开放
firewall-cmd --add-port=9098/tcp --permanent
刷新防火墙
firewall-cmd --reload
准备一个文件
编写测试代码
import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class Test {
public static void main(String[] args) {
try {
/**
* 模拟上传文件
**/
String filePath = "D:\\1715585725407 - 副本.jpg"; //要上传的文件路径
String serverAddress = "http://192.168.86.136:9098"; //minio服务端地址 注意端口与控制台端口不一样
String accessKey = "你在minio控制台创建的accessKey";
String secretKey = "accessKey对应的secretKey";
String bucketName = "livzon";
//1.创建minio客户端
MinioClient minioClient = MinioClient.builder()
.endpoint(serverAddress)
.credentials(accessKey, secretKey)
.build();
//2.判断存储桶是否存在,不存在则创建
boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
if (!exists){
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
}
//3.创建file对象
File file = new File(filePath);
//4.file转输入流并上传
InputStream in = null;
try {
in = new FileInputStream(file);
minioClient.putObject(PutObjectArgs.builder()
.bucket(bucketName)
.object("文件名111.txt") //文件名也写死了 所以同名文件会覆盖
.stream(in, in.available(), -1)
.contentType("txt") //文件类型,这里写死了,实际上需要根据文件动态获取
.build()
);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}
测试-上传成功

修改访问权限才能展示

9378

被折叠的 条评论
为什么被折叠?



