当前位置: 首页 > article >正文

MinIO - macOS上配置、Python调用

文章目录

    • 安装配置 MinIO 服务
    • Python 调用
      • SDK 简介
      • 调用示例


安装配置 MinIO 服务

1、使用 brew 安装 MinIO
如果您之前使用 brew install minio 安装了MinIO服务器,那么我们建议您改为从 minio/stable/minio 重新安装。

brew install minio/stable/minio

2、创建文件夹作为 MinIO 工作目录

cd ~
mkdir minio/data

启动程序 默认写入 ~/data 中,如果没有 这个文件夹,需要手动创建一个,否则报错。


可以将地址写入配置

export MINIO_CONFIG_ENV_FILE=/etc/default/minio
minio server --console-address :9090

3、运行服务

minio server ~/minio/data 

服务起来后,会显示 API、WebUI、CLI 等地址


打开管理端(WebUI)页面
http://192.168.2.203:9000 RootUser: minioadmin RootPass: minioadmin
在这里插入图片描述


有漂亮的监控页面
在这里插入图片描述


Python 调用

SDK 简介

MinIO 支持以下语言的 SDK :
Go、Python、Java、.NET、JavaScript、Haskell、C++


对于 Python 有以下资料

  • github : https://github.com/minio/minio-py
  • Python Client API Reference :
    https://min.io/docs/minio/linux/developers/python/API.html
  • 更多示例:https://github.com/minio/minio-py/tree/master/examples

调用示例

这里简单上传文件到服务的指定 , 不存在则创建

# 从minio库中导入Minio客户端类
from minio import Minio
# 实例化
client = Minio(
	# endpoint指定的是你Minio的远程IP及端口
	endpoint = "192.168.1.153:9000",
	# accesskey指定的是你的Minio服务器访问key
	# 默认值为minioadmin
	access_key= "minioadmin",
	# secret_key指定的是你登录时需要用的key,类似密码
	# 默认值也是minioadmin
	secret_key= "minioadmin",
	# secure指定是否以安全模式创建Minio连接
	# 建议为False
	secure= False
)

print('-- client : ', client) 
# The file to upload, change this path if needed
source_file = "/Users/xxx/Downloads/d1.txt"

# The destination bucket and filename on the MinIO server
bucket_name = "python-test-bucket"
destination_file = "my-test-file.txt"

# Make the bucket if it doesn't exist.
found = client.bucket_exists(bucket_name)
if not found:
    client.make_bucket(bucket_name)
    print("Created bucket", bucket_name)
else:
    print("Bucket", bucket_name, "already exists")

# Upload the file, renaming it in the process
client.fput_object(
    bucket_name, destination_file, source_file,
)
print(
    source_file, "successfully uploaded as object",
    destination_file, "to bucket", bucket_name,
)

可以在管理端看到结果

在这里插入图片描述


在 MinIO 的工作目录也可以看到这个文件

在这里插入图片描述


在元数据的基础上,头部添加了元数据信息

XL2 ?x?&?????!?^??L-???J??Type?V2Obj??ID??DDir?<U????L????hfC	?EcAlgo?EcM?EcN?EcBSize??EcIndex?EcDist??CSumAlgo?PartNums??PartETags??PartSizes????PartASizes????Size???MTime???!?^??MetaSys??x-minio-internal-inline-data?true?MetaUsr??content-type?application/oct??§??JCȐ?>???.??,?$??

2024-09-14(六)


http://www.kler.cn/news/309198.html

相关文章:

  • Delphi Web和Web服务开发目前有哪些选择
  • ASP.NET Core 中的 CRUD 操作
  • 游戏录屏不清楚怎么办?这些录屏技巧让画质飙升!
  • 标准的高防服务器是什么样的呢?
  • VSCode扩展连接虚拟机MySQL数据库
  • 【JavaScript】数据结构之堆
  • Python 数学建模——ARMA 时间序列分析
  • Unite Shanghai 2024 技术专场 | Unity 6及未来规划:Unity引擎和服务路线图
  • docker_持久化存储
  • 如何在Linux云服务器上解决网站截图问题
  • 【PyQt5】QWidget子类所有子类
  • 佰朔资本:股票中什么叫龙头?怎么找龙头股?
  • linux-系统管理与监控-设备管理
  • Linux 常用指令
  • 数据结构-链式二叉树-四种遍历
  • unity关于UI隐藏时性能问题
  • 解决Tez报错问题
  • 堆的概念与实现
  • 【QT】使用QOpenGLWidget后,窗口全屏之后右键菜单出不来的问题
  • java多线程模拟多个售票员从同一个票池售票
  • c++面试-语法糖(一)
  • 54. 二叉搜索树的第 k 大节点
  • 09年408考研真题-数据结构
  • MATLAB|基于多时段动态电价的电动汽车有序充电策略优化
  • 【Qt】实现模拟触摸屏 上下滑动表格 的两种方式
  • 产品经理学AI:搭建大模型应用常用的三种方式
  • 【我的 PWN 学习手札】Fastbin Attack
  • TVM和EVM的比较
  • 费解的开关
  • 【常用集合】深入浅出Map集合