对象存储 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)
从属性创建新容器
- 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)
返回一个生成器,该生成器产生容器的对象。
- 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)
下载对象中包含的数据。
- 参数:
- 引发:
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)
获取对象的元数据。
- 参数:
- 返回值:
一个
Object- 引发:
NotFoundException,当找不到资源时。
- set_object_metadata(obj, container=None, **metadata)
设置对象的元数据。
注意:此方法将执行额外的 HEAD 调用。