官方文档地址: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)

最新文章

  1. 彻底理解js中this的指向,不必硬背。
  2. CocoaPods介绍。如何安装Ruby环境,如何下载和安装CocoaPods?
  3. dedecms /plus/search.php SQL Injection && Local Variable Overriding
  4. Tomcat下使用war包发布项目
  5. zip文件jQuery工作地点选择城市代码
  6. 6 个JavaScript日期处理库
  7. FDATool使用
  8. C#获取一个文件的扩展名
  9. Sumbline编译Less
  10. 修改MySQL默认最大连接数
  11. 通过一张简单的图,让你搞懂JS的==运算
  12. memcached-session-manager的一些理解
  13. getScrollX()理解
  14. webpack 4.0配置2
  15. [3] TensorFlow 深层神经网络
  16. 蓝桥杯 跳蚱蜢 (bfs)
  17. set get del
  18. php5.6 版本出现 Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version 的错误
  19. 获取Let`s Encrypt证书的三种方式
  20. Hibernate3.3.2_ID生成策略

热门文章

  1. Tapdata肖贝贝:实时数据引擎系列(三) - 流处理引擎对比
  2. JTable和MVC设计模式
  3. war包解压与压缩
  4. [BJDCTF2020]EasySearch-1
  5. Java的基础语法01
  6. css基础03
  7. MySQL 的prepare使用中的bug解析过程
  8. 金灿灿的季节 - Apache DolphinScheduler收获5位新Committer
  9. One---python的六种数据类型及数据转换
  10. HttpClient 在vivo内销浏览器的高并发实践优化