对象存储 API

有关如何使用此 API 的详细信息,请参阅 使用 OpenStack 对象存储

对象存储类

对象存储高级接口作为 Connection 对象的 object_store 对象公开。

账户操作

class openstack.object_store.v1._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
get_account_metadata()

获取此账户的元数据。

返回类型:

账户

set_account_metadata(**metadata)

设置此账户的元数据。

参数:

metadata (kwargs) – 作为容器元数据设置的键/值对。可以设置自定义元数据。自定义元数据是由用户定义的键和值。

delete_account_metadata(keys)

删除此账户的元数据。

参数:

keys – 要删除的元数据的键。

容器操作

class openstack.object_store.v1._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
containers(**query)

获取此账户的容器对象。

参数:

query (kwargs) – 可选的查询参数,用于限制返回的资源。

返回类型:

一个 Container 对象生成器。

create_container(name, **attrs)

从属性创建新容器

参数:
  • container – 要创建的容器的名称。

  • attrs (dict) – 将用于创建 Container 的关键字参数,包括 Container 类上的属性。

返回值:

容器创建的结果

返回类型:

容器

delete_container(container, ignore_missing=True)

删除容器

参数:
  • container – 该值可以是容器的名称或 Container 实例。

  • ignore_missing (bool) – 当设置为 False 时,如果容器不存在,将引发 NotFoundException。当设置为 True 时,尝试删除不存在的服务器时不会设置任何异常。

返回值:

get_container_metadata(container)

获取容器的元数据

参数:

container – 该值可以是容器的名称或 Container 实例。

返回值:

一个 Container

引发:

NotFoundException,当找不到资源时。

set_container_metadata(container, refresh=True, **metadata)

设置容器的元数据。

参数:
  • container – 该值可以是容器的名称或 Container 实例。

  • refresh – 标志,用于触发容器对象的重新获取刷新。

  • metadata (kwargs) –

    要设置为容器元数据的键/值对。可以设置自定义和系统元数据。自定义元数据是由用户定义的键和值。系统元数据是由对象存储定义的键和用户定义的键。

    • content_type

    • is_content_type_detected

    • versions_location

    • read_ACL

    • write_ACL

    • sync_to

    • sync_key

delete_container_metadata(container, keys)

删除容器的元数据。

参数:
  • container – 该值可以是容器的 ID 或 Container 实例。

  • keys – 要删除的元数据的键。

对象操作

class openstack.object_store.v1._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
objects(container, **query)

返回一个生成器,该生成器产生容器的对象。

参数:
  • container (Container) – 一个容器对象或您想要从中检索对象的容器的名称。

  • query (kwargs) – 可选的查询参数,用于限制返回的资源。

返回类型:

一个 Object 对象生成器。

get_object(obj, container=None, resp_chunk_size=1024, outfile=None, remember_content=False)

获取与对象关联的数据

参数:
  • obj – 该值可以是对象的名称或 Object 实例。

  • container – 该值可以是容器的名称或 Container 实例。

  • resp_chunk_size (int) – 读取数据的块大小。仅当结果正在写入文件或流为 True 时使用。(可选,默认为 1k)

  • outfile – 将对象写入文件而不是返回内容。如果提供了此选项,则返回元组中的 body 将为 None。outfile 可以是作为字符串给出的文件路径,也可以是类似文件的对象。

  • remember_content (bool) – 标志,指示是否应将对象数据保存为 Object 的 data 属性。如果保持为 false 并且未定义 outfile,则数据将不会保存,需要单独获取。

返回值:

的实例 Object 对象。

引发:

NotFoundException,当找不到资源时。

download_object(obj, container=None, **attrs)

下载对象中包含的数据。

参数:
  • obj – 该值可以是对象的名称或 Object 实例。

  • container – 该值可以是容器的名称或 Container 实例。

引发:

NotFoundException,当找不到资源时。

upload_object(container, name, filename=None, md5=None, sha256=None, segment_size=None, use_slo=True, metadata=None, generate_checksums=None, data=None, **headers)

创建文件对象。

如果需要,自动使用大对象分段。

参数:
  • container – 存储文件的容器名称。如果容器不存在,则会创建该容器。

  • name – 容器内的对象名称。

  • filename – 要上传的本地文件的路径。与 data 互斥。

  • data – 要上传到对象的内容。与 filename 互斥。

  • md5 – 文件的十六进制 md5 值。(可选),如果已知并可以传递到此处,将节省重复进行昂贵的 md5 计算。假定其准确无误。

  • sha256 – 文件的十六进制 sha256 值。(可选)请参阅 md5。

  • segment_size – 将上传的对象分解为该字节数的分段。 (可选)如果未指定,SDK 将尝试从服务器发现此值的最大值,或使用合理的默认值。

  • headers – 这些将作为 HTTP 标头传递到对象创建 API。

  • use_slo – 如果对象足够大,需要成为大对象,则使用静态对象而不是动态对象。静态对象在删除清单对象时将删除分段对象。(可选,默认为 True)

  • generate_checksums – 是否在客户端生成校验和,以便将其添加到标头中,以防止重复上传相同的数据。(可选,默认为 True)

  • metadata – 此字典将更改为设置对象元数据的标头

引发:

:class:`~openstack.exceptions.SDKException` 在操作出错时。

copy_object()

复制一个对象。

delete_object(obj, ignore_missing=True, container=None)

删除一个对象

参数:
  • obj – 该值可以是对象的名称,也可以是 Container 实例。

  • container – 该值可以是容器的 ID 或 Container 实例。

  • ignore_missing (bool) – 当设置为 False 时,如果对象不存在,将引发 NotFoundException。当设置为 True 时,在尝试删除不存在的服务器时不会设置任何异常。

返回值:

get_object_metadata(obj, container=None)

获取对象的元数据。

参数:
  • obj – 该值可以是对象的名称或 Object 实例。

  • container – 该值可以是容器的 ID 或 Container 实例。

返回值:

一个 Object

引发:

NotFoundException,当找不到资源时。

set_object_metadata(obj, container=None, **metadata)

设置对象的元数据。

注意:此方法将执行额外的 HEAD 调用。

参数:
  • obj – 该值可以是对象的名称或 Object 实例。

  • container – 该值可以是容器的名称或 Container 实例。

  • metadata (kwargs) –

    要设置为容器元数据的键/值对。可以设置自定义和系统元数据。自定义元数据是由用户定义的键和值。系统元数据是由对象存储定义的键和用户定义的键。

    • content_type

    • content_encoding

    • content_disposition

    • delete_after

    • delete_at

    • is_content_type_detected

delete_object_metadata(obj, container=None, keys=None)

删除对象的元数据。

参数:
  • obj – 该值可以是对象的名称或 Object 实例。

  • container – 该值可以是容器的 ID 或 Container 实例。

  • keys – 要删除的元数据的键。