Модуль amazon.aws.s3_object — управление объектами в S3
Примечание
Этот модуль входит в коллекцию amazon.aws (версия 11.3.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install amazon.aws. Для использования этого модуля могут потребоваться дополнительные зависимости; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: 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.35.0
- botocore >= 1.35.0
Параметры
Параметр | Комментарии |
|---|---|
access_key псевдонимы: aws_access_key_id, aws_access_key строка | Идентификатор ключа доступа AWS. Дополнительные сведения о токенах доступа см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные среды Параметры aws_access_key и profile являются взаимоисключающими. Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для согласованности с AWS botocore SDK. |
aws_ca_bundle путь | Расположение пакета сертификатов центра сертификации, используемого для проверки SSL-сертификатов. Также можно использовать переменную среды |
aws_config словарь | Словарь для изменения конфигурации botocore. Параметры приведены в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
bucket строка / обязательный | Имя бакета. |
ceph псевдонимы: rgw логическое значение | Включить совместимость API с Ceph RGW. Учитывает подмножество API S3, работающее с Ceph, чтобы по возможности обеспечить такое же поведение модуля. Требуется Варианты:
|
content строка добавлено в amazon.aws 1.3.0 | Содержимое, которое нужно Значение параметра будет обработано как строка и преобразовано в UTF-8 перед отправкой в S3. Для отправки двоичных данных используйте вместо этого параметр При указании |
content_base64 строка добавлено в amazon.aws 1.3.0 | Двоичные данные в кодировке base64, которые нужно Используйте этот параметр, если нужно поместить необработанные двоичные данные, и не забудьте закодировать их в base64. При указании |
copy_src словарь добавлено в amazon.aws 2.0.0 | Сведения об исходном объекте для копирования. Обязательно, если |
|
bucket строка / обязательный |
Имя исходного бакета. |
|
object строка |
Имя ключа исходного объекта. Если не указано, все объекты |
|
prefix строка добавлено в amazon.aws 6.2.0 |
Скопировать все ключи, начинающиеся с указанного префикса. Игнорируется, если задан По умолчанию: |
|
version_id строка |
Идентификатор версии исходного объекта. |
debug_botocore_endpoint_logs логическое значение | Использовать регистратор Также можно использовать переменную среды Варианты:
|
dest путь | |
dualstack логическое значение | Включает конечные точки Amazon S3 Dual-Stack, позволяя обмениваться данными с S3 по IPv4 и IPv6. Поддержка одновременной передачи Варианты:
|
encrypt логическое значение | |
encryption_kms_key_id строка | Идентификатор ключа KMS для шифрования объектов с использованием Игнорируется, если |
encryption_mode строка | |
endpoint_url псевдонимы: aws_endpoint_url строка | URL для подключения вместо конечных точек AWS по умолчанию. Хотя этот параметр можно использовать для подключения к другим сервисам, совместимым с AWS, коллекции amazon.aws и community.aws тестируются только с AWS. Также можно использовать переменную среды |
expected_bucket_owner строка добавлено в amazon.aws 8.2.0 | Идентификатор учетной записи предполагаемого владельца бакета. Если указанный идентификатор учетной записи не совпадает с фактическим владельцем бакета, запрос завершается ошибкой с кодом состояния HTTP 403 Forbidden (доступ запрещен). |
expiry псевдонимы: expiration целое число | Срок действия (в секундах) URL, создаваемого и возвращаемого S3/Walrus при выполнении операции Игнорируется, если По умолчанию: |
headers словарь | Пользовательские заголовки, используемые при Ключи, соответствующие поддерживаемым аргументам объекта S3, переносятся на верхний уровень ExtraArgs. Поддерживаются такие ключи, как Поддерживаются оба стиля имен заголовков: Если Игнорируется, если |
ignore_nonexistent_bucket логическое значение | Переопределяет первоначальную проверку бакета на случай ограничений политик бакета или IAM. Это может быть полезно, если у пользователя есть разрешение Варианты:
|
marker строка | Указывает ключ, с которого нужно начать при использовании режима списка. Ключи объектов возвращаются в алфавитном порядке, начиная с ключа, следующего за маркером. |
max_keys целое число | |
metadata словарь | Метаданные, используемые при Ключи, соответствующие поддерживаемым аргументам объекта S3, переносятся на верхний уровень ExtraArgs (например, |
mode строка / обязательный | Переключает поведение модуля между режимами
Поддержка создания и удаления бакетов удалена в выпуске 6.0.0. Для создания бакета и управления им используйте модуль amazon.aws.s3_bucket. Поддержка Варианты:
|
object строка | Имя ключа объекта в бакете. Можно использовать для создания «виртуальных каталогов», см. примеры. Имена ключей объектов не должны начинаться с |
overwrite псевдонимы: force строка | Принудительно перезаписывать файл локально в файловой системе или удаленно — объект/ключ. Используется при Игнорируется, если Значение должно быть логическим,
Если задано значение При значениях По умолчанию: |
permission список / элементы=строка | Этот параметр позволяет пользователю задать предустановленные разрешения для создаваемого объекта/бакета. Для бакета можно задать разрешения Полный список разрешений см. в документации AWS https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl. Варианты:
По умолчанию: |
prefix строка | В режиме списка ограничивает ответ ключами, начинающимися с указанного префикса. По умолчанию: |
profile псевдонимы: aws_profile строка | Именованный профиль AWS для аутентификации. Дополнительные сведения об именованных профилях см. в документации AWS https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную среды Параметр profile является взаимоисключающим с параметрами aws_access_key, aws_secret_key и session_token. |
purge_tags логическое значение | Если Если параметр Ключи тегов, начинающиеся с Варианты:
|
region псевдонимы: aws_region строка | Регион AWS. Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется. Также можно использовать переменную среды Дополнительные сведения см. в документации Amazon AWS http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. |
retries псевдонимы: retry целое число | Количество повторных попыток при устранимой ошибке до окончательного завершения с ошибкой. По умолчанию: |
secret_key псевдонимы: aws_secret_access_key, aws_secret_key строка | Секретный ключ доступа AWS. Дополнительные сведения о токенах доступа см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные среды Параметры secret_key и profile являются взаимоисключающими. Псевдоним aws_secret_access_key добавлен в выпуске 5.1.0 для согласованности с AWS botocore SDK. |
session_token псевдонимы: aws_session_token строка | Токен сеанса AWS STS для использования с временными учетными данными. Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменную окружения Параметры session_token и profile являются взаимоисключающими. |
sig_v4 логическое значение добавлено в amazon.aws 5.0.0 | Принудительно использует в Boto SDK Signature Version 4. Применяется только к режимам получения, Варианты:
|
src путь | Путь к исходному файлу при выполнении операции Если не задан параметр |
tags псевдонимы: resource_tags словарь | Словарь, представляющий теги, которые будут применены к ресурсу. Если параметр |
validate_bucket_name логическое значение добавлено в amazon.aws 3.1.0 | Проверять ли соответствие имени бакета правилам именования AWS S3. По умолчанию проверка включена; ее можно отключить для серверных систем S3, которые не применяют эти правила. Дополнительные сведения о правилах именования бакетов см. в документации Amazon: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html. Варианты:
|
validate_certs логическое значение | Если задано значение Настоятельно не рекомендуется задавать validate_certs=false; вместо этого рассмотрите возможность указать aws_ca_bundle. Варианты:
|
version строка | Идентификатор версии объекта в бакете. Можно использовать, чтобы получить определенную версию файла, если в целевом бакете включено версионирование. |
Примечания
Примечание
- Поддержка
tagsиpurge_tagsдобавлена в выпуске 2.0.0. - Для Walrus значение
endpoint_urlследует задать равным FQDN конечной точки без схемы и пути. - Поддержка создания и удаления бакетов удалена в выпуске 6.0.0.
- Внимание: Для модулей переменные окружения и файлы конфигурации считываются из контекста Ansible «host», а не из контекста «controller». Поэтому файлы может потребоваться явно скопировать на «host». Для плагинов поиска и подключения переменные окружения и файлы конфигурации считываются из контекста Ansible «controller», а не из контекста «host».
- Используемый Ansible пакет AWS SDK (boto3) также может считывать значения по умолчанию для учетных данных и других параметров, например региона, из файлов конфигурации в контексте Ansible «host» (обычно
~/.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: PUT content with explicit ContentType and ContentDisposition
amazon.aws.s3_object:
bucket: mybucket
object: /index.html
content: "<html>Hello</html>\n"
mode: put
headers:
ContentType: "text/html; charset=utf-8"
ContentDisposition: inline
- 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:
GrantFullControl: "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_'
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
contents строка | Содержимое объекта в виде строки. Возвращается: (для операции getstr) Пример: |
expiry целое число | Количество секунд, в течение которых действителен предварительно подписанный URL. Возвращается: (для операции geturl) Пример: |
msg строка | Сообщение о состоянии операции. Возвращается: всегда Пример: |
s3_keys список / элементы=строка | Список ключей объектов. Возвращается: (для операции list) Пример: |
tags словарь | Теги объекта S3. Возвращается: всегда Пример: |
url строка | URL объекта. Возвращается: (для операций put и geturl) Пример: |
Ссылки коллекции
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/s3_object_module.html