MinIO数据导出
最近公司里需要将生产环境MinIO数据导出来一份,用于后续工作。导出的过程中尝试了三种方法(最终选择了方法三),内容如下:
方法一:MinIO Web控制台界面下载(适用于少量文件)
通过浏览器访问MinIO服务(http://:9000),进入对应的Bucket和文件夹,选择对应文件,点击下载。

注意:MinIO 控制台 不支持文件夹整体下载,文件夹只能展开后逐个选择其下的文件进行下载。
方法二:使用python脚本批量导出文件导出
可以用 Python 编写一个脚本,批量下载 MinIO 某个 bucket 中的所有对象(文件)或者某个文件夹中的图片,保存到本地。MinIO 兼容 S3 协议,所以可以使用官方的 boto3 库来操作。
步骤:
- 安装依赖:boto3
- 配置MinIO地址与访问密钥
- 使用 boto3 连接MinIO
- 遍历bucket中所有对象并下载
import boto3
from botocore.client import Config
import os
# ====== 配置 MinIO ======
minio_endpoint = "http://127.0.0.1:9000" # MinIO 服务地址
access_key = "admin" # 你的 Access Key
secret_key = "admin" # 你的 Secret Key
bucket_name = "bucket-test" # 要下载的 bucket 名称
download_dir = "F:\\minio_download_test" # 本地保存目录
prefix = "fence-manual-capture" # 要下载的文件夹
# ====== 创建本地目录 ======
os.makedirs(download_dir, exist_ok=True)
# ====== 创建 MinIO 客户端 ======
s3 = boto3.client('s3',
endpoint_url=minio_endpoint,
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
config=Config(signature_version='s3v4'),
region_name='us-east-1')
# ====== 获取并下载所有对象 ======
paginator = s3.get_paginator('list_objects_v2')
pages = paginator.paginate(Bucket=bucket_name,Prefix=prefix)
for page in pages:
if 'Contents' in page:
for obj in page['Contents']:
key = obj['Key']
local_path = os.path.join(download_dir, key)
# 创建本地子目录(如果对象名中含有路径)
os.makedirs(os.path.dirname(local_path), exist_ok=True)
print(f"正在下载: {key} -> {local_path}")
s3.download_file(bucket_name, key, local_path)
print("所有文件下载完成!")
方法三:使用MinIO Client(mc)批量导出(推荐)
MinIO官方提供了命令行工具mc,支持同步和下载。
官方文档:https://min.io/docs/minio/linux/reference/minio-mc.html
1.安装mc:
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
- 配置连接MinIO:
mc alias set myminio http://<MINIO_HOST>:<PORT> <ACCESS_KEY> <SECRET_KEY>
#例如 mc alias set myminio http://127.0.0.1:9000 minioadmin minioadmin
3.下载桶中的数据到本地
mc mirror myminio/mybucket ./local-folder
这条命令会把 mybucket 中的所有文件递归下载到当前文件夹 ./local-folder 中。
可选参数:
- --overwrite 强制覆盖本地已有文件
- --remove 会删除本地目标中不在源中的文件(慎用)
- --continue:跳过失败项,继续同步,不中断。
MinIO数据导出的更多相关文章
- [django]数据导出excel升级强化版(很强大!)
不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- mssqlserver数据导出到另外一个数据库
mssqlserver数据导出到另外一个数据库 准备源数据库,找到想要导出的数据库,右键选择"任务"再选择"导出数据" 设置源数据库信息 3.设置目标数据库,导 ...
- 在SQL Server中将数据导出为XML和Json
有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做 ...
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便.快捷的操作,使得我们不再为Oracle本身丑陋.难用的UI而抱怨.由于我们一般 ...
- pb将datawindow数据导出EXCEL
PB有dw有自带功能可以将数据导出成excel,但是head却是字段名称,这样不直观. 所见即所得的方式是,将dw保存成html然后将后缀名改成xls,但这样的方式还有些问题就是会错列,解决的方法是将 ...
- 百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?
好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系 ...
- 数据导出Excel中文乱码
数据导出到EXCEL提供用户下载,当记录数大于5行时不会出现乱码.但只要不退出Excel,再删除除记录,当记录数小于5行时,导出也不会出现乱码.当然一旦退出Excel再导出就会出现乱码了. 可以试试 ...
- sqlserver 2008 数据库表结构脚本及数据导出
sqlserver2008 在xp上尝试安装了 sqlserver2008 express版本,但是和公司的sqlserver2008 r2 版本不兼容.升级的时候,出了问题.所以换了中思路,将数据 ...
- Hive几种数据导出方式
Hive几种数据导出方式 今天我们再谈谈Hive中的几种不同的数据导出方式.可以根据导出的地方不一样,将这些方式分为三种: (1).导出到本地文件系统: (2).导出到HDFS中: (3).导出到Hi ...
随机推荐
- 1.4K star!几分钟搞定AI视频创作,这个开源神器让故事可视化如此简单!
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 story-flicks 是一个基于AI技术的自动化视频生成工具,能够将文字剧本快速转化为高 ...
- 【记录】Truenas scale|Truenas 的 SSH 服务连不上 VScode,终端能连上
一般 Truenas连不上 就只有两种情况: 第一种:用户没对应用户目录.需要去用户管理里面对每个用户设置目录. 第二种情况,服务有个选项没勾选.这时会发现能输入密码但是一点反应都没有,打开detai ...
- 【MOOC】华中科技大学操作系统慕课答案-第1~3章单元测试
单选 1 下列说法错误的是 . A. 手工操作阶段,资源利用率低的原因是因为程序的准备和撤销都需要手工完成. B. 单道批处理系统中CPU和外设交替工作和空闲. √C. 单道批处理系统效率之所以比手工 ...
- 词库过大导致的Redis超时问题-RedisCommandTimeoutException
问题 Redis缓存超时问题 报错内容 redis io.lettuce.core.RedisCommandTimeoutException: Command timed out after 10 s ...
- 详解SLAM中的李群和李代数(中)
1 概述 在上一篇文章<详解SLAM中的李群和李代数(上)>中,我们已经通过对李群求导引出了李代数.在这篇文章中,我们就系统总结一下李代数的相关知识. 2 李代数 2.1 定义 李代数是一 ...
- 剖析 Vue:最适合小白入手的前端框架
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- 交易信号---MACD、RSI、Boll、分型等技术信号
技术指标 在交易决策过程中的简图: 什么是技术指标? 基于行情数据,通过特定数学公式或模型计算得出的.用于辅助交易决策的数值序列 技术指标的分类 三种关系: 趋势线: 股市走势震荡起伏,供需关系被打破 ...
- mysql8忘记原始密码如何进入问题
原文链接 http://codebay.cn/post/9447.html 再不找到今天差点要通宵 Mark起来~ 实测mysqld –skip-grant-tables这样的命令行,在mysql8中 ...
- 第5讲、Transformer 编码器(Encoder)处理过程详解
Transformer 编码器(Encoder)处理过程详解 Transformer Encoder 是一个由 N 层(一般为 6 层)堆叠而成的模块结构.每一层的本质是两个核心子模块: 多头自注意力 ...
- 【拥抱鸿蒙】HarmonyOS NEXT实现双路预览并识别文字
我们在许多其他平台看到过OCR功能的应用,那么HarmonyOS在这方面的支持如何呢?我们如何能快速使用这一能力呢?使用这一能力需要注意的点有哪些呢?就让我们一起来探究吧~ [开发环境] 版本规则号: ...