openstack.cloud.object 模块 – 在 OpenStack 云中创建或删除 Swift 对象

注意

此模块是 openstack.cloud 集合 (版本 2.3.0) 的一部分。

如果您正在使用 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install openstack.cloud。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定:openstack.cloud.object

概要

  • 在 OpenStack 云中创建或删除 Swift 对象

要求

执行此模块的主机需要以下要求。

  • python >= 3.6

  • openstacksdk >= 1.0.0

参数

参数

注释

api_timeout

整数

套接字层在 API 调用超时之前应等待多长时间。如果省略此项,则不会将任何内容传递给 requests 库。

auth

字典

包含云的认证插件策略所需的认证信息的字典。对于默认的 *password* 插件,这将包含 *auth_url*、*username*、*password*、*project_name* 以及云支持的任何有关域的信息(例如,*user_domain_name* 或 *project_domain_name*)。对于其他插件,此参数需要包含该认证插件所需的任何参数。如果提供了命名云或存在 OpenStack OS_* 环境变量,则不需要此参数。

auth_type

字符串

要使用的认证插件的名称。如果云使用密码认证以外的其他方式,则应在此处指示插件的名称,并相应地更新 *auth* 参数的内容。

ca_cert

别名:cacert

字符串

CA 证书捆绑包的路径,可用作验证 SSL API 请求的一部分。

client_cert

别名:cert

字符串

客户端证书的路径,用作 SSL 事务的一部分。

client_key

别名:key

字符串

客户端密钥的路径,用作 SSL 事务的一部分。

cloud

任意

要操作的命名云或云配置。如果 *cloud* 是字符串,则它引用在 OpenStack clouds.yaml 文件中定义的命名云配置。为 *auth* 和 *auth_type* 提供默认值。如果提供了 *auth* 或存在 OpenStack OS_* 环境变量,则不需要此参数。如果 *cloud* 是字典,则它包含完整的云配置,就像 clouds.yaml 的一部分一样。

container

字符串 / 必需

要在其中创建对象的容器的名称(和 ID)。

如果此容器不存在,则不会创建它。

data

字符串

要上传到对象的內容。

与 *filename* 互斥。

此属性无法更新。

filename

字符串

本地文件的路径,其内容将被上传。

与 *data* 互斥。

interface

别名:endpoint_type

字符串

从服务目录中获取的端点 URL 类型。

选项

  • "admin"

  • "internal"

  • "public" ← (默认)

name

字符串 / 必需

对象的名称(和 ID)。

region_name

字符串

区域名称。

sdk_log_level

字符串

OpenStackSDK 的日志级别

选项

  • "INFO" ← (默认)

  • "DEBUG"

sdk_log_path

字符串

OpenStackSDK 日志文件的路径。如果为空,则不写入日志

state

字符串

对象应该是 present 还是 absent

选项

  • "present" ← (默认)

  • "absent"

timeout

整数

Ansible 应等待请求的资源多长时间。

默认: 180

validate_certs

别名:verify

布尔值

是否应验证 SSL API 请求。

在 Ansible 2.3 之前,默认为 true

选项

  • false

  • true

wait

布尔值

Ansible 是否应等到请求的资源完成。

选项

  • false

  • true ← (默认)

备注

注意

  • 可以使用标准的 OpenStack 环境变量(例如 OS_USERNAME),而不是提供显式值。

  • 认证信息由 openstacksdk 驱动,这意味着值可以来自 /etc/ansible/openstack.yaml、/etc/openstack/clouds.yaml 或 ~/.config/openstack/clouds.yaml 中的 yaml 配置文件,然后来自标准环境变量,最后来自 playbook 中的显式参数。更多信息可以在 https://docs.openstack.org/openstacksdk/ 找到。

示例

- name: Create a object named 'fstab' in the 'config' container
  openstack.cloud.object:
    cloud: mordred
    container: config
    filename: /etc/fstab
    name: fstab
    state: present

- name: Delete a container called config and all of its contents
  openstack.cloud.object:
    cloud: rax-iad
    container: config
    state: absent

返回值

常见的返回值已记录在 此处,以下是此模块特有的字段

描述

object

字典

描述对象的字典。

返回:当 *state* 为 present 时成功。

accept_ranges

字符串

对象接受的范围类型。

返回:成功

access_control_allow_origin

字符串

RAX 的 CORS(与标准不同)

返回:成功

content_disposition

字符串

如果设置,则指定浏览器覆盖行为。例如,此标头可能指定浏览器使用下载程序保存此文件,而不是显示文件(这是默认行为)。如果未设置,则此操作不会返回此标头。

返回:成功

content_encoding

字符串

如果设置,则为 Content-Encoding 元数据的 value 值。如果未设置,则此操作不会返回此标头。

返回:成功

content_length

字符串

HEAD 操作不返回内容。但是,在此操作中,Content-Length 标头中的值不是响应正文的大小,而是对象的字节大小。

返回:成功

content_type

整数

对象的 MIME 类型。

返回:成功

copy_from

字符串

如果设置,则这是用于通过复制 X-Copy-From 对象来创建新对象的名称。该值采用 {container}/{object} 的形式。在将容器和对象的名称包含在标头中之前,必须对其进行 UTF-8 编码,然后进行 URL 编码。使用带有 X-Copy-From 的 PUT 与使用 COPY 操作复制对象具有相同的效果。

返回:成功

delete_after

整数

指定对象删除之前的秒数。在内部,对象存储系统将此值存储在 X-Delete-At 元数据项中。

返回:成功

delete_at

字符串

如果设置,则为系统将删除对象的 UNIX 时间戳格式的时间。如果未设置,则此操作不会返回此标头。

返回:成功

etag

字符串

对于小于 5 GB 的对象,此值为对象内容的 MD5 校验和。该值不带引号。对于清单对象,此值为每个清单段的 MD5 校验和和 ETag 的连接字符串的 MD5 校验和,而不是已下载内容的 MD5 校验和。此外,该值用双引号括起来。强烈建议计算接收到的响应正文的 MD5 校验和,并将其与 ETag 标头中的值进行比较。如果它们不同,则内容已损坏,因此请重试操作。

返回:成功

expires_at

字符串

与临时 URL 一起使用,以指定签名的过期时间。有关临时 URL 的更多信息,请参阅 OpenStack 对象存储 API v1 参考。

返回:成功

id

字符串

对象的 ID。等于 name

返回:成功

if_match

列表 / 元素=字符串

参见 http://www.ietf.org/rfc/rfc2616.txt

返回:成功

if_modified_since

字符串

参见 http://www.ietf.org/rfc/rfc2616.txt

返回:成功

if_none_match

列表 / 元素=字符串

结合 Expect: 100-Continue 使用,指定 If-None-Match: * 标头,以便在发送任何数据之前查询服务器是否已拥有对象的副本。

返回:成功

if_unmodified_since

字符串

参见 http://www.ietf.org/rfc/rfc2616.txt

返回:成功

is_content_type_detected

布尔值

如果设置为 true,则对象存储会根据文件扩展名猜测内容类型,并忽略 Content-Type 标头中发送的值(如果存在)。

返回:成功

is_newest

布尔值

如果设置为 True,对象存储将查询所有副本以返回最新的副本。如果省略此标头,则对象存储在找到一个有效副本后会更快地响应。由于将此标头设置为 True 对后端而言成本更高,因此仅在绝对需要时才使用它。

返回:成功

is_static_large_object

布尔值

如果此对象是静态大对象清单对象,则设置为 True。

返回:成功

last_modified_at

字符串

创建对象或上次更改元数据的日期和时间。

返回:成功

manifest

字符串

如果存在,则为动态大对象清单对象。该值为段对象的容器和对象名称前缀,格式为 container/prefix。

返回:成功

multipart_manifest

字符串

如果包含 multipart-manifest=get 查询参数并且对象是大对象,则不会返回对象内容。而是,对于动态大对象,清单将返回在 X-Object-Manifest 响应标头中;对于静态大对象,则返回在响应正文中。

返回:成功

name

字符串

对象的名称。

返回:成功

object_manifest

字符串

如果设置,则为动态大对象清单对象。该值为段对象的容器和对象名称前缀,格式为 container/prefix。

返回:成功

range

字典

待办事项。

返回:成功

signature

字符串

与临时 URL 一起使用,对请求进行签名。有关临时 URL 的更多信息,请参阅 OpenStack 对象存储 API v1 参考。

返回:成功

字符串

如果存在,则为符号链接对象。该值为目标对象的相对路径,格式为 <container>/<object>。

返回:成功

字符串

如果存在,并且 X-Symlink-Target 存在,则这是指向值中指定的帐户中对象的跨帐户符号链接。

返回:成功

timestamp

字符串

事务的时间戳。

返回:成功

transfer_encoding

字符串

设置为 chunked 以启用分块传输编码。如果使用,请勿将 Content-Length 标头设置为非零值。

返回:成功

作者

  • OpenStack Ansible SIG