Spec-Zone.ru › Ansible

Модуль amazon.aws.s3_object — Управление объектами в S3

Примечание

Этот модуль входит в состав коллекции amazon.aws (версия 8.2.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install amazon.aws. Для использования этого модуля требуются дополнительные компоненты. Подробнее см. Требования.

Для использования в playbook, укажите: amazon.aws.s3_object.

Добавлен в amazon.aws 1.0.0

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Описание

  • Этот модуль позволяет пользователю управлять объектами и каталогами в корзинах S3. Он поддерживает создание и удаление объектов и каталогов, извлечение объектов в виде файлов или строк, генерацию ссылок для скачивания и копирование уже сохраненных объектов в Amazon S3.
  • Корзины S3 можно создавать или удалять с помощью модуля amazon.aws.s3_bucket.
  • Совместим с AWS, DigitalOcean, Ceph, Walrus, FakeS3 и StorageGRID.
  • При использовании не-AWS сервисов, необходимо указать endpoint_url.

Примечание

Данный модуль имеет соответствующий плагин действий.

Псевдонимы: aws_s3

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • python >= 3.6
  • boto3 >= 1.26.0
  • botocore >= 1.29.0

Параметры

Параметр

Комментарии

access_key

aliases: aws_access_key_id, aws_access_key, ec2_access_key

string

Идентификатор ключа доступа AWS.

См. документацию AWS для получения дополнительной информации о токенах доступа https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Переменные среды AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY также могут использоваться в порядке убывания предпочтения.

Параметры aws_access_key и profile являются взаимоисключающими.

Псевдоним aws_access_key_id был добавлен в версии 5.1.0 для согласованности с AWS botocore SDK.

Псевдоним ec2_access_key устарел и будет удален в версии после 2024-12-01.

Поддержка переменной среды EC2_ACCESS_KEY устарела и будет удалена в версии после 2024-12-01.

aws_ca_bundle

path

Расположение пакета CA, используемого при проверке сертификатов SSL.

Переменная среды AWS_CA_BUNDLE также может использоваться.

aws_config

dictionary

Словарь для изменения конфигурации botocore.

Параметры можно найти в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.

bucket

string / required

Имя корзины.

ceph

aliases: rgw

boolean

Включить совместимость API с Ceph RGW.

Учитывает подмножество API S3, работающее с Ceph, чтобы обеспечить одинаковое поведение модуля, где это возможно.

Требуется endpoint_url если ceph=true.

Варианты:

  • false ← (default)
  • true

content

string

added in amazon.aws 1.3.0

Контент для put в объект.

Значение параметра будет рассматриваться как строка и преобразовано в UTF-8 перед отправкой в S3.

Чтобы отправить двоичные данные, используйте вместо этого параметр content_base64.

Один из content, content_base64 или src должен быть указан при mode=put иначе игнорируется.

content_base64

string

added in amazon.aws 1.3.0

Кодированные в base64 двоичные данные для put в объект.

Используйте это, если вам нужно поместить необработанные двоичные данные, и не забудьте закодировать в base64.

Один из content, content_base64 или src должен быть указан при mode=put иначе игнорируется.

copy_src

dictionary

added in amazon.aws 2.0.0

Сведения об источнике объекта для копирования.

Требуется, если mode=copy.

bucket

string / required

Имя исходного бакета.

object

string

Имя ключа исходного объекта.

Если не указано, все объекты copy_src.bucket будут скопированы в указанный бакет.

prefix

string

added in amazon.aws 6.2.0

Копировать все ключи, начинающиеся с указанного префикса.

Игнорируется, если указан copy_src.object.

По умолчанию: ""

version_id

string

Идентификатор версии исходного объекта.

debug_botocore_endpoint_logs

boolean

Использовать botocore.endpoint регистратор для анализа уникальных (а не общих) "resource:action" вызовов API, сделанных во время задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода в общий список, сделанный во время playbook.

Переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS также может использоваться.

Варианты:

  • false ← (default)
  • true

dest

path

Путь к целевому файлу при загрузке объекта/ключа, когда mode=get.

Игнорируется, когда mode не get.

dualstack

boolean

Включает конечные точки Amazon S3 Dual-Stack, позволяющие S3-связи использовать как IPv4, так и IPv6.

Поддержка одновременной передачи dualstack и endpoint_url устарела, конечные точки dualstack автоматически настраиваются с помощью настроенного region. Поддержка будет удалена в версии после 2024-12-01.

Варианты:

  • false ← (default)
  • true

encrypt

boolean

Запрашивает шифрование на стороне сервера объектов, когда mode=put или mode=copy.

Игнорируется, когда mode не является ни put, ни copy.

Варианты:

  • false
  • true ← (default)

encryption_kms_key_id

string

Идентификатор ключа KMS для шифрования объектов с помощью encryption_mode=aws:kms.

Игнорируется, если encryption_mode не aws:kms.

encryption_mode

string

Режим шифрования для использования, если encrypt=true.

Варианты:

  • "AES256" ← (по умолчанию)
  • "aws:kms"

endpoint_url

aliases: ec2_url, aws_endpoint_url, s3_url

string

URL для подключения вместо стандартных конечных точек AWS. Хотя это можно использовать для подключения к другим совместимым с AWS сервисам, коллекции amazon.aws и community.aws протестированы только с AWS.

Также можно использовать переменные среды AWS_URL или EC2_URL, в порядке убывания приоритета.

Псевдонимы ec2_url и s3_url устарели и будут удалены в релизе после 2024-12-01.

Поддержка переменной среды EC2_URL устарела и будет удалена в релизе после 2024-12-01.

expected_bucket_owner

string

добавлено в amazon.aws 8.2.0

Идентификатор учетной записи ожидаемого владельца ведра.

Если предоставленный вами идентификатор учетной записи не соответствует фактическому владельцу ведра, запрос завершается ошибкой с HTTP-кодом 403 Forbidden (доступ запрещен).

expiry

aliases: expiration

integer

Срок действия (в секундах) URL-адреса, сгенерированного и возвращенного S3/Walrus при выполнении операции mode=put или mode=geturl.

Игнорируется, когда mode не является ни put, ни geturl.

По умолчанию: 600

headers

dictionary

Пользовательские заголовки для использования при mode=put в виде словаря пар ключ-значение.

Игнорируется, когда mode не put.

ignore_nonexistent_bucket

boolean

Переопределяет первоначальные запросы к ведру в случае, если ведро или политики IAM ограничены.

Это может быть полезно, когда у пользователя есть разрешение GetObject, но нет других разрешений. В этом случае использование mode=get завершится ошибкой, если не указано ignore_nonexistent_bucket=true.

Варианты:

  • false ← (по умолчанию)
  • true

marker

string

Указывает ключ для начала при использовании режима списка. Объектные ключи возвращаются в алфавитном порядке, начиная с ключа после маркера в порядке.

По умолчанию: ""

max_keys

integer

Максимальное количество результатов, которые нужно вернуть при mode=list, установите это значение, если вы хотите получить меньше, чем стандартные 1000 ключей.

Игнорируется, если mode не list.

По умолчанию: 1000

metadata

dictionary

Метаданные для использования при mode=put или mode=copy в виде словаря пар ключ-значение.

mode

string / обязательно

Переключает поведение модуля между

put: загрузка

get: скачивание

geturl: возврат URL для скачивания

getstr: скачивание объекта в виде строки

list: список ключей

create: создание каталогов ведра

delobj: удаление объекта

copy: копирование объекта, уже хранящегося в другом ведре

Поддержка создания и удаления ведер была удалена в версии 6.0.0. Для создания и управления самим ведром используйте модуль amazon.aws.s3_bucket.

Варианты:

  • "get"
  • "put"
  • "create"
  • "geturl"
  • "getstr"
  • "delobj"
  • "list"
  • "copy"

object

string

Имя ключа объекта внутри ведра.

Может использоваться для создания «виртуальных каталогов», см. примеры.

Имена ключей объектов не должны включать ведущий /, см. https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html для получения дополнительной информации.

Поддержка передачи ведущего / устарела и будет удалена в релизе после 2025-12-01.

overwrite

aliases: force

string

Принудительная перезапись локально на файловой системе или удаленно объекта/ключа.

Используется при mode=put или mode=get.

Игнорируется, когда mode не является ни put, ни get.

Должен быть булевым значением, always, never, different или latest.

true эквивалентно always.

false равно never.

При установке этого значения в different сравнивается контрольная сумма MD5 локального файла с «ETag» объекта/ключа в S3. ETag может или не может быть хешем MD5 данных объекта. См. заголовок ответа ETag здесь https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html.

При установке mode=get и overwrite=latest сравнивается отметка времени последнего изменения локального файла с отметкой времени «LastModified» объекта/ключа в S3.

По умолчанию: "different"

permission

list / elements=string

Эта опция позволяет пользователю установить предопределенные права доступа к создаваемому объекту/бакету. Доступные права доступа: private, public-read, public-read-write, authenticated-read для бакета или private, public-read, public-read-write, aws-exec-read, authenticated-read, bucket-owner-read, bucket-owner-full-control для объекта. Можно указать несколько прав доступа в виде списка; однако при первой загрузке файла будет использовано только первое из них.

Полный список прав доступа см. в документации AWS https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl.

Варианты:

  • "private" ← (значение по умолчанию)
  • "public-read"
  • "public-read-write"
  • "aws-exec-read"
  • "authenticated-read"
  • "bucket-owner-read"
  • "bucket-owner-full-control"

Значение по умолчанию: ["private"]

prefix

string

Ограничивает ответ ключами, которые начинаются с указанного префикса в режиме списка.

Значение по умолчанию: ""

profile

алиасы: aws_profile

string

Именованный профиль AWS для использования при аутентификации.

Дополнительные сведения об именованных профилях см. в документации AWS https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

Можно также использовать переменную среды AWS_PROFILE.

Опция profile взаимоисключающая с опциями aws_access_key, aws_secret_key и security_token.

purge_tags

boolean

Если purge_tags=true и задан параметр tags, существующие теги будут очищены из ресурса, чтобы точно соответствовать тому, что определено параметром tags.

Если параметр tags не задан, теги не будут изменены, даже если purge_tags=True.

Ключи тегов, начинающиеся с aws:, зарезервированы Amazon и не могут быть изменены. Поэтому они будут игнорироваться для параметра purge_tags. Дополнительные сведения см. в документации Amazon https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions.

Варианты:

  • false
  • true ← (значение по умолчанию)

region

алиасы: aws_region, ec2_region

string

Регион AWS для использования.

Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется.

Можно также использовать переменные среды AWS_REGION или EC2_REGION.

Дополнительные сведения см. в документации Amazon AWS http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

Псевдоним ec2_region устарел и будет удален в релизе после 2024-12-01

Поддержка переменной среды EC2_REGION устарела и будет удалена в релизе после 2024-12-01.

retries

алиасы: retry

integer

При возобновляемой ошибке, сколько раз повторить попытку перед фактическим отказом.

Значение по умолчанию: 0

secret_key

алиасы: aws_secret_access_key, aws_secret_key, ec2_secret_key

string

Секретный ключ доступа AWS.

Дополнительные сведения о токенах доступа см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Можно также использовать переменные среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY в порядке убывания приоритета.

Опции secret_key и profile взаимоисключающие.

Псевдоним aws_secret_access_key был добавлен в релизе 5.1.0 для согласованности с AWS botocore SDK.

Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной среды EC2_SECRET_KEY устарела и будет удалена в релизе после 2024-12-01.

session_token

алиасы: aws_session_token, security_token, aws_security_token, access_token

string

Сеансовый токен AWS STS для использования с временными учетными данными.

Дополнительные сведения о токенах доступа см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Можно также использовать переменные среды AWS_SESSION_TOKEN, AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN в порядке убывания приоритета.

Опции security_token и profile взаимоисключающие.

Псевдонимы aws_session_token и session_token были добавлены в релизе 3.2.0, а параметр был переименован из security_token в session_token в релизе 6.0.0.

Псевдонимы security_token, aws_security_token и access_token устарели и будут удалены в релизе после 2024-12-01.

Поддержка переменных среды EC2_SECRET_KEY и AWS_SECURITY_TOKEN устарела и будет удалена в релизе после 2024-12-01.

sig_v4

boolean

добавлено в amazon.aws 5.0.0

Принуждает Boto SDK использовать подпись версии 4.

Применяется только к режимам получения, mode=get, mode=getstr, mode=geturl.

Варианты:

  • false
  • true ← (значение по умолчанию)

src

path

Путь к исходному файлу при выполнении операции put.

Один из параметров content, content_base64 или src должен быть указан при mode=put, иначе игнорируется.

метки

алиасы: resource_tags

словарь

Словарь, представляющий метки, которые должны быть применены к ресурсу.

Если параметр метки не задан, метки не будут изменены.

validate_bucket_name

булево

добавлен в amazon.aws 3.1.0

Необходимо ли проверять имя ведра на соответствие правилам именования AWS S3.

Включено по умолчанию, может быть отключено для S3-бекендов, которые не соблюдают эти правила.

Дополнительную информацию о правилах именования ведер см. в документации Amazon https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html.

Варианты:

  • false
  • true ← (по умолчанию)

validate_certs

булево

При установке в значение false, сертификаты SSL для связи с API AWS не будут проверяться.

Устанавливать validate_certs=false настоятельно не рекомендуется. В качестве альтернативы, можно установить aws_ca_bundle.

Варианты:

  • false
  • true ← (по умолчанию)

версия

строка

Идентификатор версии объекта внутри ведра. Может быть использован для получения определенной версии файла, если версия включена в целевом ведре.

Примечания

Примечание

  • Поддержка tags и purge_tags была добавлена в релизе 2.0.0.
  • В релизе 5.0.0 параметр s3_url был объединён в параметр endpoint_url, s3_url остаётся псевдонимом для endpoint_url.
  • Для Walrus параметр endpoint_url должен быть установлен в FQDN конечной точки без схемы и пути.
  • Поддержка переменной среды S3_URL устарела и будет удалена в релизе после 2024-12-01, пожалуйста, используйте параметр endpoint_url или переменную среды AWS_URL.
  • Поддержка создания и удаления ведер была удалена в релизе 6.0.0.
  • Внимание: Для модулей переменные окружения и файлы конфигурации считываются из контекста Ansible «хост», а не «контроллер». Поэтому файлы может потребоваться скопировать на «хост». Для плагинов поиска и подключения переменные окружения и файлы конфигурации считываются из контекста Ansible «контроллер», а не «хост».
  • AWS SDK (boto3), который использует Ansible, также может считывать значения по умолчанию для учетных данных и других настроек, таких как регион, из файлов конфигурации в контексте Ansible «хост» (обычно ~/.aws/credentials). Дополнительную информацию см. в https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.

Примеры

- name: Simple PUT operation
  amazon.aws.s3_object:
    bucket: mybucket
    object: /my/desired/key.txt
    src: /usr/local/myfile.txt
    mode: put

- name: PUT operation from a rendered template
  amazon.aws.s3_object:
    bucket: mybucket
    object: /object.yaml
    content: "{{ lookup('template', 'templates/object.yaml.j2') }}"
    mode: put

- name: Simple PUT operation in Ceph RGW S3
  amazon.aws.s3_object:
    bucket: mybucket
    object: /my/desired/key.txt
    src: /usr/local/myfile.txt
    mode: put
    ceph: true
    endpoint_url: "http://localhost:8000"

- name: Simple GET operation
  amazon.aws.s3_object:
    bucket: mybucket
    object: /my/desired/key.txt
    dest: /usr/local/myfile.txt
    mode: get

- name: Get a specific version of an object.
  amazon.aws.s3_object:
    bucket: mybucket
    object: /my/desired/key.txt
    version: 48c9ee5131af7a716edc22df9772aa6f
    dest: /usr/local/myfile.txt
    mode: get

- name: PUT/upload with metadata
  amazon.aws.s3_object:
    bucket: mybucket
    object: /my/desired/key.txt
    src: /usr/local/myfile.txt
    mode: put
    metadata:
      Content-Encoding: gzip
      Cache-Control: no-cache

- name: PUT/upload with custom headers
  amazon.aws.s3_object:
    bucket: mybucket
    object: /my/desired/key.txt
    src: /usr/local/myfile.txt
    mode: put
    headers: 'x-amz-grant-full-control=emailAddress=owner@example.com'

- name: List keys simple
  amazon.aws.s3_object:
    bucket: mybucket
    mode: list

- name: List keys all options
  amazon.aws.s3_object:
    bucket: mybucket
    mode: list
    prefix: /my/desired/
    marker: /my/desired/0023.txt
    max_keys: 472

- name: GET an object but don't download if the file checksums match. New in 2.0
  amazon.aws.s3_object:
    bucket: mybucket
    object: /my/desired/key.txt
    dest: /usr/local/myfile.txt
    mode: get
    overwrite: different

- name: Delete an object from a bucket
  amazon.aws.s3_object:
    bucket: mybucket
    object: /my/desired/key.txt
    mode: delobj

- name: Copy an object already stored in another bucket
  amazon.aws.s3_object:
    bucket: mybucket
    object: /my/desired/key.txt
    mode: copy
    copy_src:
      bucket: srcbucket
      object: /source/key.txt

- name: Copy all the objects with name starting with 'ansible_'
  amazon.aws.s3_object:
    bucket: mybucket
    mode: copy
    copy_src:
      bucket: srcbucket
      prefix: 'ansible_'

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:

Ключ

Описание

содержимое

строка

Содержимое объекта в виде строки.

Возвращается: (для операции getstr)

Пример: "Hello, world!"

срок_действия

целое_число

Количество секунд, в течение которого действителен предварительно подписанный URL.

Возвращается: (для операции geturl)

Пример: 600

сообщение

строка

Сообщение, указывающее состояние операции.

Возвращается: всегда

Пример: "PUT operation complete"

ключ_s3

список / элементы=строка

Список ключей объектов.

Возвращается: (для операции list)

Пример: ["prefix1/", "prefix1/key1", "prefix1/key2"]

метки

словарь

Метки объекта s3.

Возвращается: всегда

Пример: {"Owner": "dev001", "env": "test"}

url

строка

URL объекта.

Возвращается: (для операций put и geturl)

Пример: "https://my-bucket.s3.amazonaws.com/my-key.txt?AWSAccessKeyId=<access-key>&Expires=1506888865&Signature=<signature>"

Авторы

  • Lester Wade (@lwade)
  • Sloane Hertel (@s-hertel)
  • Alina Buzachis (@alinabuzachis)

Ссылки на сборку

  • Отслеживание ошибок
  • Репозиторий (источники)
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/amazon/aws/s3_object_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API