博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Minio 的 Python 使用
阅读量:4229 次
发布时间:2019-05-26

本文共 4532 字,大约阅读时间需要 15 分钟。

服务启动就不多说了,主要是下载这个 minio 文件:https://dl.min.io/server/minio/release/linux-amd64/minio,然后添加可执行权限 chmod +x minio,再按照下边启动即可。

服务的启动

[root@master packages]# export MINIO_ACCESS_KEY=minio_access[root@master packages]# export MINIO_SECRET_KEY=minio_secret[root@master packages]# ./minio server /dataEndpoint:  http://192.168.128.139:9000  http://127.0.0.1:9000    AccessKey: minio_access SecretKey: minio_secret Browser Access:   http://192.168.128.139:9000  http://127.0.0.1:9000    Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide   $ mc alias set myminio http://192.168.128.139:9000 minio_access minio_secretObject API (Amazon S3 compatible):   Go:         https://docs.min.io/docs/golang-client-quickstart-guide   Java:       https://docs.min.io/docs/java-client-quickstart-guide   Python:     https://docs.min.io/docs/python-client-quickstart-guide   JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide   .NET:       https://docs.min.io/docs/dotnet-client-quickstart-guideAPI: SYSTEM()Time: 11:22:05 CST 12/18/2020DeploymentID: d1a40163-64fb-4b0b-a7f0-f4d6660b856aError: Not Implemented (cmd.NotImplemented)       3: cmd/fs-v1.go:1551:cmd.(*FSObjects).HealBucket()       2: cmd/bucket-metadata-sys.go:442:cmd.(*BucketMetadataSys).concurrentLoad.func1()       1: pkg/sync/errgroup/errgroup.go:55:errgroup.(*Group).Go.func1()API: SYSTEM()Time: 11:22:05 CST 12/18/2020DeploymentID: d1a40163-64fb-4b0b-a7f0-f4d6660b856aError: Not Implemented (cmd.NotImplemented)       3: cmd/fs-v1.go:1551:cmd.(*FSObjects).HealBucket()       2: cmd/bucket-metadata-sys.go:442:cmd.(*BucketMetadataSys).concurrentLoad.func1()       1: pkg/sync/errgroup/errgroup.go:55:errgroup.(*Group).Go.func1()...

浏览器访问

打开对应的链接,输入设置的 ACCESS_KEY 和 SECRET_KEY 就可以访问了,然后可以自己添加桶和上传文件等操作。

上传文件

官方的示例是可以正常访问的,但是我想自己访问自己搭建的服务难道不可以吗?

# my-testfilehello world

第一次尝试

# minio_client.pyfrom minio import Miniofrom minio.error import InvalidResponseErrorminioClient = Minio('192.168.128.139:9000',                 access_key='minio_access',                 secret_key='minio_secret',                 )import os# Put a file with default content-type, upon success prints the etag identifier computed by server.try:    with open('my-testfile', 'rb') as file_data:        file_stat = os.stat('my-testfile')        print(minioClient.put_object('mybucket', 'myobject',                               file_data, file_stat.st_size))except InvalidResponseError as err:    print(err)
C:\Users\lukaiyi\AppData\Local\Programs\Python\Python36\python.exe C:/python_learning/minio_client.pyTraceback (most recent call last):  File "C:\Users\lukaiyi\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 706, in urlopen    chunked=chunked,...  File "C:\Users\lukaiyi\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\util\retry.py", line 573, in increment    raise MaxRetryError(_pool, url, error or ResponseError(cause))urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='192.168.128.139', port=9000): Max retries exceeded with url: /mybucket?location= (Caused by SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:749)'),))

报错了,我最后定位出的原因好像是默认要求的安全比较高,所以重新设置一下 secure=False 就好。

第二次尝试

往桶里边上传文件的的时候记得先创建桶,不然会报错桶不存在。

# minio_client.pyfrom minio import Miniofrom minio.error import InvalidResponseErrorminioClient = Minio('192.168.128.139:9000',                 access_key='minio_access',                 secret_key='minio_secret',                 secure=False                 )minioClient.make_bucket("mybucket", location="us-east-1")import os# Put a file with default content-type, upon success prints the etag identifier computed by server.try:    with open('my-testfile', 'rb') as file_data:        file_stat = os.stat('my-testfile')        print(minioClient.put_object('mybucket', 'myobject',                               file_data, file_stat.st_size))except InvalidResponseError as err:    print(err)

查看一下,确实已经上传上去了。

下载文件

from minio import Miniofrom minio.error import InvalidResponseErrorminioClient = Minio('192.168.128.139:9000',                 access_key='minio_access',                 secret_key='minio_secret',                 secure=False                 )try:    data = minioClient.get_object('mybucket', 'myobject')    print(data.read())except InvalidResponseError as err:    print(err)
C:\Users\lukaiyi\AppData\Local\Programs\Python\Python36\python.exe C:/python_learning/minio_client.pyb'hello world\n'Process finished with exit code 0

能看到,刚才上传上去的文件可以正常下载下来。

转载地址:http://onjqi.baihongyu.com/

你可能感兴趣的文章
项目管理的三个关键
查看>>
从技术雷达看DevOps十年-DevOps和持续交付
查看>>
从架构可视化入门到抽象坏味道
查看>>
重读领域驱动设计——如何说好一门通用语言
查看>>
不就是个短信登录API嘛,有这么复杂吗?
查看>>
第二十期技术雷达正式发布——给你有态度的技术解析
查看>>
从技术雷达看DevOps的十年 – 基础设施即代码和云计算
查看>>
Scala 3 不再支持 XML 了吗?
查看>>
微前端如何落地?
查看>>
软件测试新趋势
查看>>
高效会议的十三条军规
查看>>
UI层自动化测试框架(五):业务层和用例层
查看>>
Jenkins如何更改主目录
查看>>
TestNG实现用例运行失败自动截图和重跑
查看>>
ReportNG测试报告的定制修改
查看>>
模糊查询
查看>>
T-SQL中的聚合函数中的SUM()函数与AVG函数()
查看>>
T-SQL中的聚合函数(二)
查看>>
分组查询
查看>>
2021-06-04
查看>>