MinIO是基于Apache License v2.0开源协议的对象存储服务。兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单地和其他应用结合。它是为性能和S3 API而设计的。
官网
中国镜像站
中文文档
开源地址
.NET 客户端api地址
下载地址
minio-dotnet
安装MinIO服务器
# 下载minio服务器
wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
chmod +x minio
# 把minio文件移动到/usr/local/bin/
mv minio /usr/local/bin/
# 尽量不要把文件直接放在/data下,在data下创建一个文件夹aws_s3
mkdir /data/aws_s3
# 启动服务
minio server /data/aws_s3/
# 自定义节点和端口
minio server 23.102.55.10:8888 /data/aws_s3/
# 后台启动
nohup minio server /data/aws_s3/ &
# 自定义用户名、密码:在~/.bashrc文件中写入:(重新启动服务)
export MINIO_ACCESS_KEY=rx
export MINIO_SECRET_KEY=rx1234
启动服务后,会显示一些ip地址。在浏览器访问这些ip地址,输入用户名密码即可访问本地的MinIO服务器。页面如图:
点击右下角可以创建分区,新建的分区及上传的文件会存储在本地:/data/aws_s3/下
用MinIO Client(mc)管理文件服务器
# 下载minio客户端
wget http://dl.minio.org.cn/client/mc/release/linux-amd64/mc
chmod +x mc
./mc –help
alias mc="~/mc"
# 将MinIO Server添加到客户端
./mc config host add myminio http://172.21.110.235:9000 rx rx1234
# 命令行管理文件【命令与linux类似】
mc mb minio/buk2 # 创建 buk2 的桶
mc cp -r * minio/buk2 # 上传当前目录所有文件到buk2桶上
mc ls minio # 查看存储桶
mc ls minio/buk2 # 查看buk2存储桶文件
mc find minio/buk2 --name "*.html" # 查找buk2存储桶中html结尾文件
mc share download minio/buk2/baidu.html # 共享buk2下baidu.html文件下载路径
mc policy set public minio/buk2 # 设置桶策略为public,这样MinIO可以提供永久文件服务
python处理minio文档
安装:pip install minio
存储桶里不能再创建桶,其他一切都是对象.
注:创建桶命名限制:只能用小写字母,句点,连字符和数字(大写字母、下划线等命名会报错),长度至少应为3个字符。
上传文件:若文件已存在,会直接覆盖
文件不存在,会报错FileNotFoundError
# 创建一个客户端
client = Minio('minio.***.com',
access_key='admin',
secret_key='****',
secure=False,
)
# 下载文件
client.fget_object(
bucket_name="",
object_name="",
file_path='',
)
# 上传文件
client.fput_object(
bucket_name='',
object_name='', # 文件在minio上的路径
file_path='', # 文件在本地的路径
)
put_object
单个对象最大不超过5TB,在对象大于5MiB时,自动使用multiple parts方式上传。这样,当上传失败时,客户端只需要上传未成功的部分即可(类似断点上传)。上传的对象使用MD5SUM签名进行完整性验证。