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 ...
随机推荐
- fastjson bug: parseObject 死循环
版本: com.alibaba:fastjson:1.2.83 描述: 反序列化时,会陷入死循环 JSON:[""] 引起bug代码: List<Map<String, ...
- Promise 这个新 API 真香!
Hey, 我是 沉浸式趣谈 本文首发于[沉浸式趣谈],我的个人博客 https://yaolifeng.com 也同步更新. 转载请在文章开头注明出处和版权信息. 如果本文对您有所帮助,请 点赞.评论 ...
- Next App Router 模式下,如何同步服务端 Redux 初始状态?
大家的阅读是我发帖的动力,本文首发于我的博客:deerblog.gu-nami.com/,欢迎大家来玩,转载请注明出处喵. 前言 Next.js 是一个广受欢迎的 React 服务端渲染(Server ...
- 深度评测:DeepSeek API 在代码分析与审查中的实战应用 (附 Prompt 示例)
人工智能(AI)正在深刻改变软件开发的各个环节,从最初的需求分析 1 到最终的部署维护 1,AI 的身影无处不在.尤其在代码编写.分析和审查方面,AI 辅助工具如 GitHub Copilot 8 已 ...
- uniapp开发HarmonyOS NEXT应用之项目结构详细解读
昨天的文章介绍了使用uniapp跨平台鸿蒙应用时如何配置开发环境和运行调试项目,今天介绍一下uniapp项目目录的结构. 可能对于从事移动开发的友友来说,uniapp的项目结构看起来有一些陌生,它更接 ...
- codeup之沙漏图形
Description 问题:输入n,输出正倒n层星号三角形.首行顶格,星号间有一空格,效果见样例 输入样例: 3 输出样例: * * * * * * * * * * * 数据规模 1<= n ...
- Longest Substring Without Repeating Characters---LeetCode进阶路③
题目描述 Given a string, find the length of the longest substring without repeating characters. Example ...
- 【多线程】Java多线程与并发编程全解析
Java多线程与并发编程全解析 多线程编程是Java中最具挑战性的部分之一,它能够显著提升应用程序的性能和响应能力.本文将全面解析Java多线程与并发编程的核心概念.线程安全机制以及JUC工具类的使用 ...
- RabbitMQ单机&可能遇到的问题
1.Deployments 1 kind: Deployment 2 apiVersion: apps/v1 3 metadata: 4 name: rabbitmq-deployment 5 spe ...
- k8s gpu共享
k8s gpu 共享方案 1.配置环境变量实现 通过在POD的启动文件中,配置NVIDIA_VISIBLE_DEVICES的环境变量,指定显卡号.NVIDIA_VISIBLE_DEVICES可配置为具 ...