目录
一,docker部署minio单节点单磁盘
二,SDK测试上传下载
一,docker部署minio单节点单磁盘
1.拉取镜像
# 下载镜像
docker pull minio/minio
2.查看镜像
docker images
3.启动minio(新版本)
创建本机上的挂载目录,这个可以自己指定。
mkdir -p /opt/minio/data
mkdir -p /opt/minio/config
docker run \
-p 9000:9000 \
-p 9090:9090 \
--net=host \
--name minio \
-d --restart=always \
-e "MINIO_ROOT_USER=minioadmin" \
-e "MINIO_ROOT_PASSWORD=minioadmin" \
-v /opt/minio/data:/data \
-v /opt/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9090" -address ":9000"
-d --restart=always是容器自启动,建议不要带。
增加这行参数,执行docker stop的时候不管用,他会立马又自己启动起来,只能强制删除容器,如下。
docker rm -f 容器id
1)-p 9000:9000 -p 9090:9090
将本地机器上的端口 9000和 9090绑定到容器上相同的端口。 这允许通过本地机器访问容器。
(冒号前面是本地机器的端口,后面是docker容器内的端口,两者建立一个映射,实际访问是访问本机端口)
2)-v PATH:/data
将本地机器上的存储卷 PATH绑定到容器上的/data路径。path是自已指令的,但是/data是固定的,他是容器内的,但是也可以通过配置文件来改。
3)minio/minio server /data --console-address ":9090" -address ":9000"
使用之前步骤中拉取的 minio/minio
镜像启动MinIO服务器。 --console-address ":9090" 选项指示服务器为MinIO控制台Web界面设置一个静态端口。
4.是否启动成功
这里最好把没用的容器停掉,否则内存占用太多,等会访问巨慢。
#查看正在运行的docker容器
docker ps
#查看容器日志
docker logs -f 8947b6930f99
5.如果云服务器9000/9090端口没有放开,那防火墙那里要放开。
然后访问9090控制台,
创建桶,上传下载没问题说明isok.
二,SDK测试上传下载
这里按照官网来操作即可,软件开发工具包(SDK) — MinIO中文文档 | MinIO Linux中文文档
导入依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.9</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.8.1</version>
</dependency>
1.创建minio客户端对象
MinioClient minioClient =
MinioClient.builder()
.endpoint("http://IP:9000")
.credentials("minioadmin", "minioadmin")
.build();
2.文件上传
@Test
public void upload() throws IOException, ServerException, InsufficientDataException, ErrorResponseException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
UploadObjectArgs asiatrip = UploadObjectArgs.builder()
.bucket("onlinecourse")
.object("2024/04/09/dingdaer.mp4")
.filename("D:\\bigfile_test\\dingdaer.mp4")
.build();
minioClient.uploadObject(asiatrip);
System.out.println("文件上传成功");
}
bucket: 自己创建的桶的名字
object: 对象名,可以带目录,也可不带
filename: 本地文件路径
上传成功!!
注: 如果对象名称(objectName)一样,那么第二次会将第一次上传的覆盖掉。
2.文件删除
@Test
public void remove() throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
RemoveObjectArgs build = RemoveObjectArgs.builder().
bucket("onlinecourse").
object("2024/04/09/dingdaer.mp4").
build();
minioClient.removeObject(build);
}
3.下载文件
@Test
public void download() throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
minioClient.downloadObject(
DownloadObjectArgs.builder()
.bucket("onlinecourse")
.object("9fa9adef51d96db3720bd26dd9e64997.jpg")
.filename("D:\\bigfile_test\\download.jpg")
.build());
}
filename为指定下载到哪里。
注: 出现问题,写错了等等,就把docker容器停掉重新启动即可。
docker常用命令Docker常用命令的使用及镜像的构建-CSDN博客