资源托管 Minio
本次搭建以 linux 系统为例,使用 docker 搭建
一. 创建容器
1. 拉取镜像
docker pull minio/minio
2. 创建文件
做目录映射(数据卷)
mkdir -p /home/minio/config
mkdir -p /home/minio/data
3. 运行容器
这里的 "用户名" "密码", 就是后面会使用到的 “ACCESS_KEY” “SECRET_KEY”
docker run -p 9000:9000 -p 9090:9090 \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=<用户名>" \
-e "MINIO_SECRET_KEY=<密码>" \
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio \
minio/minio server /data --console-address ":9090" -address ":9000"
# 解释 minio默认启动是动态端口,设置固定端口
--console-address ":9090" # console端口是web页面
--address ":9000" #web端口,是给应用使用提交下载文件的
4. 访问
使用浏览器访问
# 地址:
ip地址:9090
# 用户名,密码
就是上面 3 中所设置的
登陆界面
登录成功之后进入的页面
二. 会遇到的问题
1. 需设置资源访问策略
1.1直接鼠标 点点点 方式
设置值为 public 即可
1.2 命令形式
1. 安装 curl
yum update
yum install -y curl
2. 下载 MinIO 客户端
curl -O https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/
3. 配置 MinIO 客户端
# myminio: 别名,后面会用到
# username password 就是上面设置的 ACCESS_KEY 和 SECRET_KEY
mc alias set myminio http://your-server-ip:9000 username password
4. 设置桶的访问策略为公开
mc policy set public <别名>/< 创建的桶名 >
或
mc anonymous set public <别名>/< 创建的桶名 >
5. 上面完成访问即可
端口是 9090
2. 时差问题
解决:
The difference between the request time and the server‘s time is too large 的问题
(1). 查看时间是否相同
我的MinIo是在虚拟机上,查看虚拟机时间
查看时区命令
timedatectl
-----上面与下面对比,可能会发现时区不同-----
查看系统时间
date
查看硬件时间
hwclock
(2). 解决问题
安装ntp ntpdate
yum -y install ntp ntpdate
与时间服务器同步时间
ntpdate cn.pool.ntp.org
将系统时间写入硬件时间
hwclock --systohc
三. 上传文件
from minio import Minio
# 设置MinIO服务器的访问信息
minioClient = Minio('192.168.30.129:9000',
access_key= <用户名>,
secret_key= <密码>,
secure=False) # 如果使用非加密连接,请设置为 False
# 上传文件到桶中
try:
# 本地文件路径
file_path = r'C:\Users\Administrator\Pictures\head\group_photo2.jpg'
# 指定桶的名称
bucket_name = 'luffy'
# 指定要上传的对象名称(在桶中的路径,需加后缀名)
object_name = 'group_photo2.jpg'
# 使用put_object方法上传文件
result = minioClient.fput_object(bucket_name, object_name, file_path)
print("文件上传成功!")
print(result)
except Exception as err:
print(err)