【MinIO】几个有用的方法

在windows总安装Minio

这是一篇不错的安装指南
进入网址
在这里插入图片描述
在Windows安装时,选择相应的exe文件下载,下载到本地后,使用如下的命令即可在前台启动:

minio.exe server D:\your_path

或者将该路径写进环境变量的path中,用来为minio指定数据存储路径。
执行成功的效果如下如所示:
在这里插入图片描述

在python中使用Minio

python中安装minio

pip install minio

promtp shell启动minio,注意该shell不能关闭

minio.exe server D:\MinIO  # 后面的路劲是存放数据的地址

浏览器打开127.0.0.1:9000
输入默认账户和密码minioadminminioadmin

获取bucket中的对象

通过list_objects获取Minio中的对象

objects = client.list_objects(bucket_name, prefix=None, recursive=True)
for obj in objects:print(obj.bucket_name, obj.object_name.encode('utf-8'), obj.last_modified,obj.etag, obj.size, obj.content_type) # 进一步查看object的属性

上传本地文件到Minio

通过fput_object方法可以将本地文件上传到Minio

# 上传文件,bucket_name 桶名称, object_name: 上传到桶中的完整的文件路径, file_path:文件本地所在完整路径
result = client.fput_object(bucket_name=bucket_name,object_name='data1/'+file_name,file_path=file_path+"/"+file_name)
print(result.object_name,result.bucket_name, result.etag)

从Minio下载图片到本地

通过fget_object方法可以将文件从Minio下载到本地

client.fget_object('test', 'baike_knowledge/46c88e9e080efc4c0e8742e022130d7e/20231109112809770.jpeg', 'this.jpeg')

爬取图片url,并上传到Minio

使用request库爬取网络图片,并使用Minioupload_pictures()方法将数据上传到MinIO

import requests
from io import BytesIO
from minio import Minio
from minio.error import S3Error
from hashlib import md5
import datetimeminio = Minio(endpoint="127.0.0.1:9000",access_key='minioadmin',secret_key='minioadmin',secure=False)def upload_pictures(client, source_url, pic_url, bucket_name, spider_name):try:response = requests.get(pic_url)  # crawling pictureimage = BytesIO(response.content) # change the picture to bytes typesize = len(image.getvalue())  # calculate the object sizepage_md5 = md5(str(source_url).encode("utf-8")).hexdigest() #  use md5(url) as piece of file nametimestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S%f")[:-3] # timestamp as part of object_namecontent_type = pic_url.split('.')[-1] # get picture type: jpg, png, jpeg etc.# Upload the image to MinIO serverclient.put_object(bucket_name=bucket_name, object_name=f"{spider_name}/{page_md5}/{timestamp}.{content_type}", data=image,content_type=f"image/{content_type}", length=size)# when you extract data, you should not includ the bucket name in the whole pathpic_path = f'{bucket_name}/{spider_name}/{page_md5}/{timestamp}.{content_type}'# logging.info(f'save picture to minio path {pic_path}')return pic_pathexcept requests.exceptions.InvalidURL:print("无效的 URL")except requests.exceptions.HTTPError as e:print(f"HTTP 错误: {e}")except S3Error as err:print("Error occurred: ", err)except Exception as e:print(f"发生错误: {e}")return None

移除MinIO中size为0的object

from minio import Miniominio = Minio(endpoint="127.0.0.1:9000",access_key='minioadmin',secret_key='minioadmin',secure=False)def remove_zero_size(client, bucket_name):object = client.list_objects(bucket_name, prefix=None, recursive=True)for obj in object:print(obj.bucket_name, obj.object_name.encode('utf-8'), obj.last_modified,obj.etag, obj.size, obj.content_type) # 进一步查看object的属性if obj.size == 0:# Remove an object.client.remove_object(bucket_name, obj.object_name.encode('utf-8'))
remove_zero_size(minio, bucket_name='size')

函数说明 https://www.bookstack.cn/read/miniocookbookzh/24.md
https://blog.csdn.net/weixin_40547993/article/details/110682587

https://blog.csdn.net/quyingzhe0217/article/details/129727120
https://blog.csdn.net/Deaohst/article/details/128699370
https://www.python100.com/html/Q2I2IO5C25Z5.html
https://www.cnblogs.com/mian-1122/p/17463849.html
安装minio https://zhuanlan.zhihu.com/p/514794125
https://blog.csdn.net/m0_72838865/article/details/126599849
https://blog.csdn.net/LONG729564606/article/details/129331498
https://blog.csdn.net/feritylamb/article/details/126246293

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5种主流API网关技术选型,yyds!

API网关是微服务项目的重要组成部分,今天来聊聊API网关的技术选型,有理论,有实战。 不 BB,上文章目录: 1 API网关基础 1.1 什么是API网关 API网关是一个服务器,是系统的唯一入口。 从面向对象设计的角度…

医疗机构最核心的资源是什么?如何利用去获取客流?

核心资源一:医生——直接影响医疗机构口碑声誉 核心资源二:效率——直接影响患者满意度 医生为患者提供专业医疗服务的同时,也得确保高效地处理患者就诊需求,这是保障机构的服务质量和长久发展的根本。 那么该如何有效提升资源的…

Linux python安装 虚拟环境 virtualenv,以及 git clone的 文件数据, 以及 下资源配置

根目录创建 venvs 文件夹 sudo mkdir /venvs 进入 /venvs 目录 cd /venvsp 创建虚拟环境,前提要按照 python3 安装 的 命令 sudo apt install python3 sudo python3 -m venv 虚拟环境名 激活虚拟环境 source /venvs/zen-venv/bin/activate 安装flask pip install fl…

java springboot测试类虚拟MVC环境 匹配请求头指定key与预期值是否相同

上文 java springboot测试类虚拟MVC环境 匹配返回值与预期内容是否相同 (JSON数据格式) 版 中 我们展示 json匹配内容的方式 那么 本文我们来看看Content-Type属性的匹配方式 首先 我们从返回体可以看出 Content-Type 在请求头信息 Headers 中 我们直接将测试类代码更改如下 …

【Web】NewStarCTF Week1 个人复现

目录 ①泄露的秘密 ②Begin of Upload ③Begin of HTTP ④ErrorFlask ⑤Begin of PHP ⑥R!C!E! ⑦EasyLogin ①泄露的秘密 盲猜/robots.txt,访问得到flag前半部分 第二个没试出来,老老实实拿dirsearch扫吧 访问/www.zip 下载附件,拿到第二部分…

C语言--不创建第三个变量,实现对两个数字的交换

我们先来看一下&#xff0c;创建临时变量交换两个数字。 #include<stdio.h> {int a2;int b3;int tmp0;printf("before:a%d b%d\n",a,b);tmpa;ab;btmp;printf("after:a%d b%d\n",a,b);return 0; } 图解&#xff1a; 运行结果&#xff1a; 再看一下不…

平衡树 - splay

相比于之前的普通平衡树进行左旋右旋来比&#xff0c;splay的适用性更高&#xff0c;使用更广泛。 核心函数rotate、splay函数&#xff0c;其它的根据需要进行修改。 int n, m; struct Node {int s[2], p, v, cnt; // 左右儿子、父节点、值、出现数量int size, flag; // 子树大…

RK3568驱动指南|第八篇 设备树插件-第73章 设备树插件使用实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

为什么要隐藏id地址?使用IP代理技术可以实现吗?

随着网络技术的不断发展&#xff0c;越来越多的人开始意识到保护个人隐私的重要性。其中&#xff0c;隐藏自己的IP地址已经成为了一种常见的保护措施。那么&#xff0c;为什么要隐藏IP地址&#xff1f;使用IP代理技术可以实现吗&#xff1f;下面就一起来探讨这些问题。 首先&am…

flask依据现有的库表快速生成flask实体类

flask依据现有的库表快速生成flask实体类 在实际开发过程中&#xff0c;flask的sqlalchemy对应的model类写起来重复性较强&#xff0c;如果表比较多会比较繁琐&#xff0c;这个时候可以使用 flask-sqlacodegen 来快速的生成model程序或者py文件&#xff0c;以下是简单的示例&a…

安捷伦E4404B频谱分析仪,100 Hz 至 6.7 GHz

E4404B是安捷伦ESA-E系列频谱分析仪&#xff0c;它是一款能够适应未来发展需求的中高端频谱分析仪解决方案。该系列在频谱分析仪的测量速度、动态范围、精度和功率分辨能力等方面&#xff0c;都为类似价位的产品树立了性能标杆。其灵活的平台设计使得研发、制造和现场服务工程师…

提高工作效率的宝藏网站和宝藏工具(高级版)

一、参考资料 亲测&#xff1a;你这些网站都不知道&#xff0c;哪来时间去摸鱼&#xff1f; 提高工作效率的宝藏网站和宝藏工具&#xff08;基础版&#xff09; 二、好用的网站 HelloGitHub - 开源项目平台 HelloGitHub 是一个分享有趣、 入门级开源项目的平台。 希望大家能…