Python库,用于具有通用方法的不同对象存储。
object-store的Python项目详细描述
不同平台的Python对象存储库
这是一个python库,用于具有通用方法的不同对象存储。在
它目前支持以下对象存储平台:
该库允许并遵循以下列出的对象存储平台的基本功能:
- 连接到特定对象存储
- 将对象存储到存储桶
- 从存储桶检索对象
目录
先决条件
要正确地构建和使用库,您必须安装python2(使用pip)或python3(使用pip3)并设置 虚拟环境。对于python安装,您可能需要运行以下命令:
sudo apt update sudo apt install -y python3-venv python3-wheel python-wheel-common
安装
安装object_store
库的最简单方法是将其安装到虚拟环境中:
在此之后,您可以使用import object_store
在python文件中导入库。在
清理
清理过程也很重要。要取消安装此库,请对python2运行pip uninstall object store
,或者对python3运行pip3 uninstall object store
。你呢
还应该从解释器路径中删除文件(例如rm -rf ~/.local/lib/python3.7/site-packages/object_store/
以及rm -rf ~/.local/lib/python3.7/site-packages/object_store-0.1.0.dist-info/
之类的任何wheel文件)。
控制盘文件也存在于库的dist
文件夹中。如果你想重新安装库,你应该删除它们。在
使用
这个库提供了不同的函数,可以与不同的对象存储一起使用。在
支持的对象存储以python枚举类型存储,命名为ObjectStorageType
,其中三个常量表示三个对象
指定存储:AWS_S3
、AZURE_CONTAINERS
和MINIO
。在
目前您可以使用以下方法:
Method | Purpose |
---|---|
create_client | Creates a new objest store client |
retrieve_from_bucket | Retrieves object from bucket |
store_to_bucket | Stores object to bucket |
这些方法将在下一节中进一步解释。在
创建特定对象存储客户端
要创建对象存储客户机,必须使用create_client(self, *args, **kwargs)
方法。在
MinIO
如果您使用的是MinIO对象存储,您必须以某种方式提供存储的IP及其访问和
密钥。您可以直接通过将关键字参数放入create client
方法来实现这一点,例如
这个:
fromobject_store.min_ioimportMinIOminio=MinIO()minio.create_client(ip='192.0.2.1',access_key='AKIAIOSFODNN7EXAMPLE',secret_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')
为了避免直接接触不同的对象存储,是一个名为ObjectStorageCreator
的类,它创建
使用create_storage
函数为我们存储对象。请小心将正确的ObjectStorageType
传递给其构造函数。所以在MinIO的情况下,我们将使用ObjectStorageType.MINIO
。完整用法如下例所示(对于MinIO凭据,我们使用示例IPs、access key和secret key):
fromobject_store.object_storage_creatorimportObjectStorageCreatorfromobject_store.object_storage_typeimportObjectStorageTypeobject_storage_creator=ObjectStorageCreator(ObjectStorageType.MINIO)minio_client=object_storage_creator.create_storage(ip='192.0.2.1',access_key='AKIAIOSFODNN7EXAMPLE',secret_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')美国焊接学会S3
对于aws3 bucket存储,必须将存储类型设置为ObjectStorageType.AWS_S3
。从那里你可以
使用create_storage
函数创建您的客户机,因为这将自动为您提供
在你的系统上设置的。在
fromobject_store.object_storage_creatorimportObjectStorageCreatorfromobject_store.object_storage_typeimportObjectStorageTypeobject_storage_creator=ObjectStorageCreator(ObjectStorageType.AWS_S3)aws_s3_client=object_storage_creator.create_storage()
Azure
对于Azure容器BLOB存储,必须将存储类型设置为ObjectStorageType.AZURE_CONTAINERS
。从那里你可以使用create_storage
函数来创建你的客户端并传递你的Azure连接字符串(你可以在Azure门户inder Azure Active Directory设置中找到它)。在
fromobject_store.object_storage_creatorimportObjectStorageCreatorfromobject_store.object_storage_typeimportObjectStorageTypeobject_storage_creator=ObjectStorageCreator(ObjectStorageType.AZURE_CONTAINERS)azure_client=object_storage_creator.create_storage(connection_string="your-connection-string")
铲斗读数
为了从对象存储中的bucket中获取一些内容,可以自由地使用retrieve_from_bucket(self, source_bucket, file_name)
方法,其中传递source_bucket
变量作为bucket的名称,而{/tmp
文件夹中)。看到了吗
示例如下:
fromobject_store.object_storage_creatorimportObjectStorageCreatorfromobject_store.object_storage_typeimportObjectStorageTypeobject_storage_creator=ObjectStorageCreator(ObjectStorageType.AWS_S3)aws_s3_client=object_storage_creator.create_storage()aws_s3_client.retrieve_from_bucket("my_bucket","my_picture")
写入bucket
要将某些内容存储到现有的bucket中,请使用store_to_bucket(self, destination_bucket, file_name, img_path)
方法,其中
传递destination_bucket
参数作为要存储对象的存储桶的名称。的名称
bucket中的元素必须使用file_name
参数指定,而img_path
参数是fot
元素的绝对/相对路径。参见以下示例:
fromobject_store.object_storage_creatorimportObjectStorageCreatorfromobject_store.object_storage_typeimportObjectStorageTypeobject_storage_creator=ObjectStorageCreator(ObjectStorageType.MINIO)minio_client=object_storage_creator.create_storage(ip='192.0.2.1',access_key='AKIAIOSFODNN7EXAMPLE',secret_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')minio_client.store_to_bucket("my_destination_bucket","my_new_picture","/home/pc/image.png")
- 项目
标签: