跳转到主要内容

Ceph使用boto3进行选择对象操作的外壳,可确认读取的完整性并修复间歇性连接。

项目描述

codecov

以下boto3 s3客户端操作的外壳,具有连接重试和校验和验证

  • get_object

  • head_object

  • upload_fileobj

  • copy_object

  • delete_object

  • list_objects_v2

特性

  • 重试连接失败

  • 确认上传和检索对象的校验和

  • 移动对象

  • 受限制的接口,支持现有桶中对象的简单CRUD操作

配置

以下环境变量配置object clerk。

变量

描述

类型

默认值

MULTIPART_THRESHOLD

在哪个字节阈值上传被拆分为多个部分进行上传。影响存储在eTag中的校验和

STR

524288000

S3_CLIENT_CONFIG

Boto Core客户端配置 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html 默认值反映了在更高层面捕获失败操作的重试。

JSON

`json {"connect_timeout": 60, "read_timeout": 60, "retries": {"max_attempts": 0}} `

S3_UPLOAD_CONFIG

上传时应用的传输配置 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/customizations/s3.html#boto3.s3.transfer.TransferConfig multipart_threshold和multipart_chunksize由MULTIPART_THRESHOLD环境变量设置。S3_UPLOAD_CONFIG中的这些键的值将被丢弃。

JSON

`json {} `

S3_DOWNLOAD_CONFIG

下载时应用的传输配置 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/customizations/s3.html#boto3.s3.transfer.TransferConfig

JSON

`json {} `

安装

pip install object-clerk

示例

初始化

clerk = ObjectClerk(host=127.0.0.1, port=8080, access_key=12342, secret_key=12342, retry_delay=1, retry_backoff=1, retry_jitter=(1, 3), retry_max_delay=5, retry_tries=3, use_ssl=False)'

获取对象

# with checksum verified

bytes_response = clerk.get_object("bucket", "object_key")

# without checksum verified

bytes_response = clerk.get_object("bucket", "object_key", verify_checksum=False)

删除对象

clerk.delete_object("bucket", "object_key")

获取对象信息

dict_response = clerk.get_object_info("bucket", "object_key")

复制对象

# with checksum verified

clerk.copy_object(
    "source_bucket",
    "source_object_key",
    "destination_bucket",
    "destination_object_key",
)

# without checksum verified

clerk.copy_object(
    "source_bucket",
    "source_object_key",
    "destination_bucket",
    "destination_object_key",
    verify_checksum=False
)

上传对象

# with checksum verified

with open("file", mode='rb') as f:

    clerk.upload_object(f, "bucket", "object_key")

# without checksum verified

with open("file", mode='rb') as f:

    clerk.upload_object(f, "bucket", "object_key", verify_checksum=False)

移动对象

# with checksum verified

clerk.move_object(
    "source_bucket",
    "source_object_key",
    "destination_bucket",
    "destination_object_key",
)

# without checksum verified

clerk.move_object(
    "source_bucket",
    "source_object_key",
    "destination_bucket",
    "destination_object_key",
    verify_checksum=False
)

列表对象

clerk.list_objects(
    "bucket_name",
    1000
)

测试

git clone git@bitbucket.org:swiant/object_store_wrapper.git

pip install -e .

export HOST=<host>

export PORT=<port>

export ACCESS_KEY=<access_key>

export SECRET_KEY=<secret_key>

pytest -v object_clerk

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源分发

object-clerk-0.1.1.tar.gz (17.2 kB 查看哈希值)

上传时间

由以下支持