基于MinIO的对象存储增删改查

MinIO是一个高性能的分布式对象存储服务。Python的minio库可操作MinIO,包括创建/列出存储桶、上传/下载/删除文件及列出文件。

查看帮助信息

 minio.exe --help
minio.exe server  --help                                                                                                                        
ME:                                                                                                                                             
minio.exe server - start object storage server                                                                                                  
                                                                                                                                                
AGE:                                                                                                                                            
minio.exe server [FLAGS] DIR1 [DIR2..]                                                                                                          
minio.exe server [FLAGS] DIR{1...64}                                                                                                            
minio.exe server [FLAGS] DIR{1...64} DIR{65...128}                                                                                              
                                                                                                                                                
R:                                                                                                                                              
DIR points to a directory on a filesystem. When you want to combine                                                                             
multiple drives into a single large system, pass one directory per                                                                              
filesystem separated by space. You may also use a '...' convention                                                                              
to abbreviate the directory arguments. Remote directories in a                                                                                  
distributed setup are encoded as HTTP(s) URIs.                                                                                                  
                                                                                                                                                
AGS:                                                                                                                                            
--config value               specify server configuration via YAML configuration [%MINIO_CONFIG%]                                               
--address value              bind to a specific ADDRESS:PORT, ADDRESS can be an IP or hostname (default: ":9000") [%MINIO_ADDRESS%]             
--console-address value      bind to a specific ADDRESS:PORT for embedded Console UI, ADDRESS can be an IP or hostname [%MINIO_CONSOLE_ADDRESS%]
--ftp value                  enable and configure an FTP(Secure) server                                                                         
--sftp value                 enable and configure an SFTP server                                                                                
--certs-dir value, -S value  path to certs directory (default: "C:\\Users\\lilon\\.minio\\certs")                                               
--quiet                      disable startup and info messages                                                                                  
--anonymous                  hide sensitive information from logging                                                                            
--json                       output logs in JSON format                                                                                         
--help, -h                   show help                                                                                                          
                                                                                                                                                
AMPLES:                                                                                                                                         
1. Start MinIO server on "/home/shared" directory.                                                                                              
   C:\> minio.exe server /home/shared                                                                                                           
                                                                                                                                                
2. Start single node server with 64 local drives "/mnt/data1" to "/mnt/data64".                                                                 
   C:\> minio.exe server /mnt/data{1...64}                                                                                                      
                                                                                                                                                
3. Start distributed MinIO server on an 32 node setup with 32 drives each, run following command on all the nodes                               
   C:\> minio.exe server http://node{1...32}.example.com/mnt/export{1...32}                                                                     
                                                                                                                                                
4. Start distributed MinIO server in an expanded setup, run the following command on all the nodes                                              
   C:\> minio.exe server http://node{1...16}.example.com/mnt/export{1...32} \                                                                   
          http://node{17...64}.example.com/mnt/export{1...64}                                                                                   
                                                                                                                                                
5. Start distributed MinIO server, with FTP and SFTP servers on all interfaces via port 8021, 8022 respectively                                 
   C:\> minio.exe server http://node{1...4}.example.com/mnt/export{1...4} \                                                                     
         --ftp="address=:8021" --ftp="passive-port-range=30000-40000" \                                                                         
         --sftp="address=:8022" --sftp="ssh-private-key=${HOME}/.ssh/id_rsa"                                                                    

启动服务

$ minio.exe server --address :9001  minio_data\
MinIO Object Storage Server
Copyright: 2015-2025 MinIO, Inc.
License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
Version: RELEASE.2025-01-20T14-49-07Z (go1.23.5 windows/amd64)

API: http://127.0.0.1:9001
   RootUser: minioadmin
   RootPass: minioadmin

WebUI: http://127.0.0.1:62335
   RootUser: minioadmin
   RootPass: minioadmin

CLI: https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart
   $ mc alias set 'myminio' 'http://192.168.1.100:9001' 'minioadmin' 'minioadmin'

Docs: https://docs.min.io

1

Python实现增删改查

安装依赖

$ pip install minio
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Installing collected packages: minio
Successfully installed minio-7.2.15

连接服务

from minio import Minio

client = Minio(
    endpoint="127.0.0.1:9001",
    access_key="minioadmin",
    secret_key="minioadmin",
    secure=False
)

创建存储桶(Buckets)

def create_bucket():
    client.make_bucket('bucket1', location="location1")

这里给存储桶命名为bucket1,位置在location1。

列出所有的存储桶

def list_buckets():
    buckets = client.list_buckets()
    for bucket in buckets:
        print(bucket.name, bucket.creation_date)

上传和下载文件

def upload_file():
    client.fput_object("bucket1", "1.png", "path/to/file/1.png")


def download_file():
    client.fget_object('bucket1', "1.png", 'path/to/file/2.png')

这里的存储桶是bucket1,文件命名为1.png,

移除文件

def remove_file():
    client.remove_object('bucket1', '1.png')

列出所有的存储对象

def list_objects():
    objects = client.list_objects('bucket1')
    for obj in objects:
        print(obj.object_name)

相关链接

官网 https://min.io/
https://github.com/minio/minio

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/962026.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

14-6-1C++STL的list

(一)list容器的基本概念 list容器简介: 1.list是一个双向链表容器,可高效地进行插入删除元素 2.list不可以随机存取元素,所以不支持at.(pos)函数与[ ]操作符 (二)list容器头部和尾部的操作 list对象的默…

汽车网络信息安全-ISO/SAE 21434解析(中)

目录 第七章-分布式网络安全活动 1. 供应商能力评估 2. 报价 3. 网络安全职责界定 第八章-持续的网络安全活动 1. 网路安全监控 2. 网络安全事件评估 3. 漏洞分析 4. 漏洞管理 第九章-概念阶段 1. 对象定义 2. 网路安全目标 3. 网络安全概念 第十章 - 产品开发 第十…

C#分页思路:双列表数据组合返回设计思路

一、应用场景 需要分页查询(并非全表查载入物理内存再筛选),返回列表1和列表2叠加的数据时 二、实现方式 列表1必查,列表2根据列表1的查询结果决定列表2的分页查询参数 三、示意图及其实现代码 1.示意图 黄色代表list1的数据&a…

YOLOv8源码修改(4)- 实现YOLOv8模型剪枝(任意YOLO模型的简单剪枝)

目录 前言 1. 需修改的源码文件 1.1添加C2f_v2模块 1.2 修改模型读取方式 1.3 增加 L1 正则约束化训练 1.4 在tensorboard上增加BN层权重和偏置参数分布的可视化 1.5 增加剪枝处理文件 2. 工程目录结构 3. 源码文件修改 3.1 添加C2f_v2模块和模型读取 3.2 添加L1正则…

【Block总结】DynamicFilter,动态滤波器降低计算复杂度,替换传统的MHSA|即插即用

论文信息 标题: FFT-based Dynamic Token Mixer for Vision 论文链接: https://arxiv.org/pdf/2303.03932 关键词: 深度学习、计算机视觉、对象检测、分割 GitHub链接: https://github.com/okojoalg/dfformer 创新点 本论文提出了一种新的标记混合器(token mix…

设计模式Python版 原型模式

文章目录 前言一、原型模式二、原型模式示例三、原型管理器 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式:关注类和对…

一文讲解Java中的BIO、NIO、AIO之间的区别

BIO、NIO、AIO是Java中常见的三种IO模型 BIO:采用阻塞式I/O模型,线程在执行I/O操作时被阻塞,无法处理其他任务,适用于连接数比较少的场景;NIO:采用非阻塞 I/O 模型,线程在等待 I/O 时可执行其…

使用 postman 测试思源笔记接口

思源笔记 API 权鉴 官方文档-中文:https://github.com/siyuan-note/siyuan/blob/master/API_zh_CN.md 权鉴相关介绍截图: 对应的xxx,在软件中查看 如上图:在每次发送 API 请求时,需要在 Header 中添加 以下键值对&a…

AWTK 骨骼动画控件发布

Spine 是一款广泛使用的 2D 骨骼动画工具,专为游戏开发和动态图形设计设计。它通过基于骨骼的动画系统,帮助开发者创建流畅、高效的角色动画。本项目是基于 Spine 实现的 AWTK 骨骼动画控件。 代码:https://gitee.com/zlgopen/awtk-widget-s…

新年手搓--本地化部署DeepSeek-R1,全程实测

1.环境准备安装ollma ollma官网链接: Download Ollama on Linux ubuntu命令行安装: curl -fsSL https://ollama.com/install.sh | sh 选择运行模型,用7b模型试一下(模型也差不多5G): ollama run deepseek-r1:7b 运行qwen: ollama run qwen2.5:7b 2.为方便运行…

STM32使用VScode开发

文章目录 Makefile形式创建项目新建stm项目下载stm32cubemx新建项目IED makefile保存到本地arm gcc是编译的工具链G++配置编译Cmake +vscode +MSYS2方式bilibiliMSYS2 统一环境配置mingw32-make -> makewindows环境变量Cmake CmakeListnijia 编译输出elfCMAKE_GENERATOR查询…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.21 索引宗师:布尔索引的七重境界

1.21 索引宗师:布尔索引的七重境界 目录 #mermaid-svg-Iojpgw5hl0Ptb9Ti {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Iojpgw5hl0Ptb9Ti .error-icon{fill:#552222;}#mermaid-svg-Iojpgw5hl0Ptb9Ti .…

毕业设计--具有车流量检测功能的智能交通灯设计

摘要: 随着21世纪机动车保有量的持续增加,城市交通拥堵已成为一个日益严重的问题。传统的固定绿灯时长方案导致了大量的时间浪费和交通拥堵。为解决这一问题,本文设计了一款智能交通灯系统,利用车流量检测功能和先进的算法实现了…

课题推荐:基于matlab,适用于自适应粒子滤波的应用

自适应粒子滤波(Adaptive Particle Filter, APF)是一种用于状态估计的有效方法,特别适用于非线性和非高斯系统。 文章目录 应用场景MATLAB 代码示例代码说明结果扩展说明 以下是一个基于自适应粒子滤波的简单应用示例,模拟一个一维…

Redis(5,jedis和spring)

在前面的学习中,只是学习了各种redis的操作,都是在redis命令行客户端操作的,手动执行的,更多的时候就是使用redis的api(),进一步操作redis程序。 在java中实现的redis客户端有很多,…

基于聚类与相关性分析对马来西亚房价数据进行分析

碎碎念:由于最近太忙了,更新的比较慢,提前祝大家新春快乐,万事如意!本数据集的下载地址,读者可以自行下载。 1.项目背景 本项目旨在对马来西亚房地产市场进行初步的数据分析,探索各州的房产市…

(2025 年最新)MacOS Redis Desktop Manager中文版下载,附详细图文

MacOS Redis Desktop Manager中文版下载 大家好,今天给大家带来一款非常实用的 Redis 可视化工具——Redis Desktop Manager(简称 RDM)。相信很多开发者都用过 Redis 数据库,但如果你想要更高效、更方便地管理 Redis 数据&#x…

智慧园区管理系统为企业提供高效运作与风险控制的智能化解决方案

内容概要 快鲸智慧园区管理系统,作为一款备受欢迎的智能化管理解决方案,致力于为企业提供高效的运作效率与风险控制优化。具体来说,这套系统非常适用于工业园、产业园、物流园、写字楼及公寓等多种园区和商办场所。它通过数字化与智能化的手…

C++中常用的排序方法之——冒泡排序

成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C中常用的排序方法之——冒泡排序的…

基础项目实战——3D赛车(c++)

目录 前言一、渲染引擎二、关闭事件三、梯形绘制四、轨道绘制五、边缘绘制六、草坪绘制七、前后移动八、左右移动​九、曲线轨道​十、课山坡轨道​十一、循环轨道​十二、背景展示​十三、引入速度​十四、物品绘制​十五、课数字路障​十六、分数展示​十七、重新生成​十八、…