MinIO Python Client SDK 快速入门指南
2024-09-05 05:51:25
官方文档地址:http://docs.minio.org.cn/docs/master/python-client-quickstart-guide
MinIO Python Client SDK提供简单的API来访问任何与Amazon S3兼容的对象存储服务。
最低要求
Python 2.7或更高版本
使用pip安装
pip install minio
初始化MinIO Client
MinIO client需要以下4个参数来连接MinIO对象存储服务。
参数 | 描述 |
---|---|
endpoint | 对象存储服务的URL。 |
access_key | Access key是唯一标识你的账户的用户ID。 |
secret_key | Secret key是你账户的密码。 |
secure | true代表使用HTTPS。 |
from minio import Minio
from minio.error import ResponseError
minioClient = Minio('play.min.io',
access_key='Q3AM3UQ867SPQQA43P2F',
secret_key='zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
secure=True)
示例-文件上传
本示例连接到一个MinIO对象存储服务,创建一个存储桶并上传一个文件到存储桶中。
我们在本示例中使用运行在 https://play.min.io 上的MinIO服务,你可以用这个服务来开发和测试。示例中的访问凭据是公开的。
# 引入MinIO包。
from minio import Minio
from minio.error import (ResponseError, BucketAlreadyOwnedByYou,
BucketAlreadyExists)
# 使用endpoint、access key和secret key来初始化minioClient对象。
minioClient = Minio('play.min.io',
access_key='Q3AM3UQ867SPQQA43P2F',
secret_key='zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
secure=True)
# 调用make_bucket来创建一个存储桶。
try:
minioClient.make_bucket("maylogs", location="us-east-1")
except BucketAlreadyOwnedByYou as err:
pass
except BucketAlreadyExists as err:
pass
except ResponseError as err:
raise
else:
try:
minioClient.fput_object('maylogs', 'pumaserver_debug.log', '/tmp/pumaserver_debug.log')
except ResponseError as err:
print(err)
实际操作演示 (使用自签名证书,https://192.168.20.102:9000)
from minio import Minio
from minio.error import S3Error
import urllib3
httpClient = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs='./certs/public.crt')
# public.crt为自定义的签名证书
def main():
client = Minio(
"192.168.20.102:9000",
access_key="admin",
secret_key="12345678",
secure=True, # 默认为True,表示地址用的是https
http_client=httpClient # 定制http_clinet,加载上自签名证书,否则会报证书验证错误
)
# 判断存储桶asiatrip是否存在,不存在则创建
found = client.bucket_exists("asiatrip")
if not found:
client.make_bucket("asiatrip")
else:
print("Bucket 'asiatrip' already exists")
# 往上一步的存储桶里上传证书文件
client.fput_object(
"asiatrip", "public.crt", "./certs/public.crt",
)
print(
"'public.crt' is successfully uploaded as "
"object 'public.crt' to bucket 'asiatrip'."
)
if __name__ == "__main__":
try:
main()
except S3Error as exc:
print("error occurred.", exc)
实际操作演示 (不使用证书,http://192.168.20.102:9000)
from minio import Minio
from minio.error import S3Error
def main():
client = Minio(
"192.168.20.102:9000",
access_key="admin",
secret_key="12345678",
secure=False # 默认为True,表示地址用的是https
)
# 判断存储桶asiatrip是否存在,不存在则创建
found = client.bucket_exists("asiatrip")
if not found:
client.make_bucket("asiatrip")
else:
print("Bucket 'asiatrip' already exists")
# 往上一步的存储桶里上传证书文件
client.fput_object(
"asiatrip", "public.crt", "./certs/public.crt",
)
print(
"'public.crt' is successfully uploaded as "
"object 'public.crt' to bucket 'asiatrip'."
)
if __name__ == "__main__":
try:
main()
except S3Error as exc:
print("error occurred.", exc)
最新文章
- 彻底理解js中this的指向,不必硬背。
- CocoaPods介绍。如何安装Ruby环境,如何下载和安装CocoaPods?
- dedecms /plus/search.php SQL Injection &;&; Local Variable Overriding
- Tomcat下使用war包发布项目
- zip文件jQuery工作地点选择城市代码
- 6 个JavaScript日期处理库
- FDATool使用
- C#获取一个文件的扩展名
- Sumbline编译Less
- 修改MySQL默认最大连接数
- 通过一张简单的图,让你搞懂JS的==运算
- memcached-session-manager的一些理解
- getScrollX()理解
- webpack 4.0配置2
- [3] TensorFlow 深层神经网络
- 蓝桥杯 跳蚱蜢 (bfs)
- set get del
- php5.6 版本出现 Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version 的错误
- 获取Let`s Encrypt证书的三种方式
- Hibernate3.3.2_ID生成策略