资源托管 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 即可


image


image


image

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)
posted @ 2024-06-12 17:02  codegjj  阅读(7)  评论(0编辑  收藏  举报