python 连接minio并上传目录及文件

2023-10-27

python sdk安装

python需要3.7及以上版本,pip3 install minio

python 代码

from minio import Minio
from minio.error import InvalidResponseError
import os
import argparse

#执行时 python .\upload2minio.py --host 10.13.1.21:3032 -ak akxxxxx -sk scxxx -bn mybucket  -tv abc -tout E:\\temp
parser = argparse.ArgumentParser(description='argparse')
parser.add_argument('--host', '-host', type=str,
                    default="10.13.1.21:3032", required=True, help="minio host")
parser.add_argument('--access_key', '-ak', type=str,
                    default="", required=True, help="minio access_key")
parser.add_argument('--secret_key', '-sk', type=str,
                    default="", required=True, help="minio secret_key")
parser.add_argument('--bucket_name', '-bn', type=str,
                    default="ai-train-bucket", required=True, help="minio bucket name")
parser.add_argument('--train_name_and_version', '-tv', type=str,
                    default="", required=True, help="train name and version")
parser.add_argument('--train_out_url', '-tout', type=str,
                    default="", required=True, help="")

args = parser.parse_args()
print('host:'+args.host)
print('ak:'+args.access_key)
print('sk:'+args.secret_key)
print('bucket_name:'+args.bucket_name)
print('train_name_and_version:'+args.train_name_and_version)
print('train_out_url:'+args.train_out_url)

# 从参数取值并赋值给变量
endpoint = args.host
ak = args.access_key
sk = args.secret_key
bucket_name = args.bucket_name
# 以训练名称和版本号组合作为桶下边的第一层文件夹
train_name_and_version = args.train_name_and_version
# 要下载文件夹的根目录
train_out_url = args.train_out_url

# Initialize MinIO client
try:
    client = Minio(endpoint, access_key=ak, secret_key=sk, secure=False)
    print("minio client connected")
except:
    print("minio client init failed")

# 创建桶
try:
    found = client.bucket_exists(bucket_name)
    if not found:
        client.make_bucket(bucket_name)
        print("Bucket " + bucket_name + "  maked succeeded")
    else:
        print("Bucket " + bucket_name + " already exists")
except InvalidResponseError as err:
    print("bucket_exists exception:")
    print(err)

print("train_out_url:"+train_out_url)

print('---------------开始上传minio----------------------')
i=0
try:
    for root, dirs, files in os.walk(train_out_url):
        for file in files:
            i=i+1
            try:
                local_file = os.path.join(root, file)
                print("待上传文件:"+local_file)
                minio_file_path = local_file.replace(
                    train_out_url, train_name_and_version)
                minio_file_path = minio_file_path.replace('\\', '/')
                client.fput_object(bucket_name, minio_file_path, local_file)
                print('已上传文件'+minio_file_path)
            except InvalidResponseError as err:
                print(err)
    print("上传文件结束,共 "+ str(i) +"个文件")
except Exception as ex:
    print("上传minio异常")
    print(ex)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 连接minio并上传目录及文件 的相关文章

  • X 轴刻度标签按年份,X 轴网格线按财政季度

    我试图将 x 轴刻度标签设置为年份 但将网格线设置为财政季度 数据很简单 只是一个groupby date count 见下文 每个日期都有一个计数 我将其绘制为线图 rc rc form Bakken rc tgt oil groupby
  • pandas 读取列中带有额外逗号的 csv

    我正在阅读一个基本的 csv 文件 其中各列用逗号分隔 列名称如下 userid username body 但是 正文列是一个可能包含逗号的字符串 显然这会导致一个问题 pandas 会抛出一个错误 CParserError Error
  • 如何将 typeshed 与 mypy 一起使用?

    我克隆了typeshed https github com python typeshed但我不知道如何告诉 mypy 使用它包含的类型提示 我在 mypy help 中没有看到任何选项 mypy 存储库确实包含对 typeshed 存储库
  • Ruby 相当于 Python 的多处理模块是什么?

    为了在 Ruby 或 Python 中获得真正的并发性 我需要创建新的进程 Python 使用以下命令使这变得非常简单multiprocessing模块 它抽象了所有 fork wait 的好处 让我专注于我的代码 Ruby 有类似的东西吗
  • 使用 setuptools (pip) 时如何打印警告和错误

    我正在使用 setuptools 来打包代码 以便可以使用以下命令轻松安装它 cd project name pip install 在设置过程中 我想警告用户有关预先存在的配置文件的信息 并在系统上打印一些安装后说明 例如 etc pro
  • Django表单中的隐藏字段不在cleaned_data中

    我有这个表格 class CollaboratorForm forms Form user forms CharField label Username max length 100 canvas forms IntegerField wi
  • 从 java 代码运行 Python 脚本

    这是我第一次在java中尝试python 我正在尝试从我的代码执行 python 脚本 如下所示 Process process Runtime getRuntime exec python C Users username Desktop
  • Django CollectStatic 启动大文件上传时管道损坏

    我正在尝试使用collectstatic将静态文件上传到我的S3存储桶 但我收到一个700k javascript文件的管道损坏错误 这就是错误 Copying Users wedonia work asociados server aso
  • 为什么Flask后台线程获取错误的数据库信息?

    为了将实时数据库信息推送到客户端 我在服务器端使用flask socketio 通过使用websocket将所有实时数据库信息推送到客户端 我的视图文件有一个片段 from models import Host from flask soc
  • 将 postgres 连接到 django 时遇到问题

    以下文档来自Django Postgres 文档 https docs djangoproject com en 4 1 ref databases postgresql notes我添加到我的settings py 在我设置的设置中 DA
  • 如何向 Jupyter (ipython) 笔记本自动添加扩展?

    我已经安装了扩展 calico document tools 我可以使用以下命令从 Jupyter 笔记本中加载它 javascript IPython load extensions calico document tools 如何为每个
  • 如何在我的 GUI 上绘图

    我正在设计一个 GUIPyQt当我单击一个按钮来绘制我创建的函数的数据图时 我需要显示一个 matplotlib pylab 窗口 它就像 Matlab 中使用的运行时 每次按下该按钮时 我都想将 matplotlib pylab 窗口保留
  • Python父类访问子私有变量

    以下代码会生成错误 class A object def say something self print self foo print self bar class B A def init self self foo hello sel
  • 基于 Pandas 中特殊字符分隔列中的每个项目进行聚合

    我输入的数据如下 Date Investment Type Medium 1 1 2000 Mutual Fund Stocks Fixed Deposit Real Estate Own Online Through Agent 1 2
  • 将 gtk.DrawingArea 保存到文件

    我想使用 PIL 将 gtk DrawingArea 对象内容保存到 jpeg 文件 我特别想添加这个脚本 http pygstdocs berlios de pygst tutorial webcam viewer html制作照片的可能
  • 过滤给定范围内的坐标

    我有数百个带有地理位置的 out 文件 我将把它们批量导入到 SQLite 数据库中 但是 为了节省时间 我只会导入地理坐标在某些间隔内的线 文件是这样的 value value longitude latitude value value
  • 如何忽略 Sentry 捕获中的某些 Python 错误

    我已将 Sentry 配置为捕获 Django Celery 应用程序中的所有错误 它工作正常 但我发现一个令人讨厌的用例是当我必须重新启动我的 Celery 工作人员 PostgreSQL 数据库或消息服务器时 这会导致数千种各种 无法访
  • numpy.polyval() 的反函数

    我想知道 np polyval 是否有一个方便的反函数 我在其中给出 y 值并求解 x 我知道我可以做到这一点的一种方法是 import numpy as np Set up the question p np array 1 1 10 y
  • tkinter 库 treectrl 转换为 exe 安装程序时出现 cx_freeze 错误

    我使用的是 python 版本 3 7 我使用了这个名为 treectrl 的外部库 当我运行 py 文件时它工作得很好 但是当我使用 cx freeze 转换为 exe 文件时 它给了我错误 NomodulleFound 名为 tkint
  • Python - 将列表作为参数传递给 SQL,以及更多变量

    我试图在 python 3 6 中将未知数量的参数传递给 SQL Server 这是我使用 pypyodbc 的代码 cursor cnxn cursor theargs 1033286869 1053474957 1063654630 1

随机推荐

  • QMQTT快速入门

    文章目录 QMQTT快速入门 环境搭建 mosquitto 服务器和客户端配置 服务器配置 客户端配置 模拟MQTT的发布订阅 QMQTT Windows下的客户端 项目代码展示 遇到的问题 QMQTT快速入门 环境搭建 准备一台linux
  • 爱心捐款

    发短信 5陈建慧 到 10699999 为我的SunnyDay爱心扶贫基金捐款 谢谢 把5改为1或2表示捐款1元或2元 让祖国大地充满阳光和温暖 基金主要用于贫困帮助地区老师和学生 发95陈建慧到10699999 每月捐5元 期待您的帮助
  • C#通过OPC协议连接PLC

    今天是2020年2月28号 因 新冠病炎 在家办公的第一个月 事情的起因是公司突然交我给一个任务 给电机车做个雷达扫描图 用于显示机车前方所有障碍物的信息 如下图所示 c 开发 解析硬件通过can通讯传过来的数据 因为之前给电机车做过触摸屏
  • SpringBoot整合Quartz实现定时任务(单任务、多任务)

    前言 为了实现如 定时发送邮件 订单超时等操作需要使用到任务调度 为了节约自己封装的时间所以使用Quatrz开源项目来帮助我们实现这些繁杂的操作 Quatrz内部有自己的线程池 不需要我们去手动维护线程 而且支持cron表达式等 下面我们讲
  • C++拷贝构造函数、赋值构造函数(深拷贝,浅拷贝)

    一 拷贝构造函数 拷贝构造函数是一种特殊的构造函数 函数的名称必须和类名称一致 它的唯一的一个参数是本类型的一个引用变量 该参数是const类型 不可变的 例如 类X的拷贝构造函数的形式为X const X x 自定义拷贝构造函数是一种良好
  • 【AntDB数据库】如何快速入门AntDB数据库?(二)

    AntDB数据库的硬件配置要求及安装包下载说明 硬件配置要求 组件 CPU 内存 本地存储 网络 mgr 16核 32G SAS 千兆网卡 gtmcoord 32核 64G SSD 万兆网卡 coordinator 32核 64G SSD
  • Linux 文件系统只读

    一般在SD卡或者U盘使用的是FAT32文件系统 当Linux下写FAT32文件系统时可能会出现 只读文件系统的错误 导致变为只读文件系统的原因是在操作FAT32文件系统的之后发生过致命的错误 然后系统以只读的方式重新挂载 remount r
  • 管理者工具箱--用最佳策略和资源,留住您最优秀的人才

    近年来 离职跳槽之风盛行 但多数员工打心底里是不会轻易离开一个培养了自己多年 又能满足职业发展需求的环境的 作为管理者 您处于一个有利的位置 应努力打造一支能长期并肩合作的稳固的团队 领英制作的这本实用指南 旨在介绍实用策略 工具和模板 帮
  • leveldb源码分析--SSTable之Compaction 详解

    http www cnblogs com KevinT p 3819134 html leveldb源码分析 SSTable之Compaction 对于compaction是leveldb中体量最大的一部分 也应该是最为复杂的部分 为了便于
  • Conda——报错解决:CondaError: Cannot write to /.condarc Caused by PermissionError(13, ‘Permission denied‘)

    报错详情 解决方法 sudo chown R pc home pc condarc sudo chown R pc home pc anaconda3 pc 替换你的用户名 home pc anaconda3替换为你的anaconda路径
  • 基础算法题——牛牛的棋盘(容斥原理)

    容斥原理 一种计数方法 先不考虑重叠的情况 把包含于某内容中的所有对象的数目先计算出来 然后再把计数时重复计算的数目排斥出去 使得计算的结果既无遗漏又无重复 题目 牛客网 牛牛最近在家里看到一个棋盘 有 n m 个格子 在棋盘旁边还放着 k
  • SpringBoot学习路线

    SpringBoot 第一章Xml和JavaConfig 1 为什么要使用springboot 因为spring springmvc需要使用大量的配置文件 xml文件 还需要配置各种对象 把使用的对象放入到spring容器中才能使用对象 需
  • 【mysql基础知识】查询当前时间之前5分钟内的数据

    通过sql语句查询与当前时间相隔5分钟以内的数据 select from 数据表名 where 字段名 between date add now interval 5 minute and now 字段名是字符串格式 也是可以的
  • 数据仓库架构

    这节来说说数据仓库的架构 关于架构并没有一个统一的标准 按照数据量以及使用环境可以搭建适合当下场景的数据仓库 下面主要是介绍比较大众或者说比较通用的数据仓库架构 传统的数据仓库架构按层级可分为 ETL ODS DWD DWS 和 ADS 五
  • JDBC java连接数据库

    JDBC编程六步 注册驱动 告诉java程序 即将连接那个品牌的数据库 Driver driver new com mysql jdbc Driver DriverManager registerDriver driver 或 class
  • Maven的scope=import

    详解内容 maven有个核心文件 名曰pom xml 这个文件中的标签 简直是眼花缭乱 千姿百态 而标签中的值也非常之多 今天我们就scope标签其中一个值import 讲解一番 scope标签的作用 这里不作过多的赘述 不明白的小伙伴 可
  • 基于跳数,时延,带宽的最短/优路径和负载均衡

    基于跳数的最短路径转发 基于跳数的最短路径转发是最简单的最优路径转发应用 我们通过network awareness应用来实现网络拓扑资源的感知并计算最短路径 首先控制器通过下发LLDP报文来获取网络链路信息 然后再利用网络信息 生成网络拓
  • sklearn决策树预剪枝

    老饼讲解机器学习 http ml bbbdata com teach 102 目录 一 预剪枝即调参 二 调参方法 1 默认值预观察生长的树 2 参数限制节点过分生长 为预防模型过拟合 我们可以采用预剪枝和后剪枝方法 1 预剪枝 树构建过程
  • git错误pathspec did not match any file(s) known to git及相关操作

    git error pathspec did not match any file s known to git 本地文件与远程无对应 我这里的情况是在执行 update nrp update all git pull Already up
  • python 连接minio并上传目录及文件

    目录 python sdk安装 python 代码 python sdk安装 python需要3 7及以上版本 pip3 install minio python 代码 from minio import Minio from minio