aws_s3 - управление объектами в S3.
Краткое описание
- Этот модуль позволяет пользователю управлять ведрами S3 и объектами внутри них. Он поддерживает создание и удаление объектов и ведер, извлечение объектов в виде файлов или строк, а также генерацию ссылок для скачивания. Этот модуль зависит от boto3 и botocore.
Требования (к хосту, на котором выполняется модуль)
- boto
- boto3
- botocore
- python >= 2.6
Параметры
| параметр | обязательно | по умолчанию | варианты | комментарии |
|---|---|---|---|---|
| aws_access_key | нет | Идентификатор ключа доступа к AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY. псевдонимы: ec2_access_key, access_key | ||
| aws_secret_key | нет | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_KEY. псевдонимы: ec2_secret_key, secret_key | ||
| bucket | да | Имя ведра. | ||
| dest (добавлено в 1.3)
| нет | Путь к целевому файлу при скачивании объекта/ключа с помощью операции GET. | ||
| ec2_url | нет | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковое имеется. | ||
| encrypt (добавлено в 2.0)
| нет | True | При установке для режима PUT запрашивает шифрование на стороне сервера. | |
| expiration | нет | 600 | Срок действия (в секундах) URL-адреса, сгенерированного и возвращенного S3/Walrus при выполнении операции mode=put или mode=geturl. | |
| headers (добавлено в 2.0)
| нет | Дополнительные заголовки для операции PUT в виде словаря 'ключ=значение' и 'ключ=значение,ключ=значение'. | ||
| ignore_nonexistent_bucket (добавлено в 2.3)
| нет | Переопределяет начальные запросы к ведру в случае ограничений ведра или IAM-политик. Пример: пользователь может иметь разрешение GetObject, но не другие разрешения. В этом случае использование параметра mode: get завершится ошибкой без указания ignore_nonexistent_bucket: True. | ||
| marker (добавлено в 2.0)
| нет | Указывает ключ для начала с использованием режима list. Ключи объектов возвращаются в алфавитном порядке, начиная с ключа после маркера в порядке. | ||
| max_keys (добавлено в 2.0)
| нет | 1000 | Максимальное количество результатов, возвращаемых в режиме list, установите это значение, если вы хотите получить меньше, чем стандартные 1000 ключей. | |
| metadata (добавлено в 1.6)
| нет | Метаданные для операции PUT в виде словаря 'ключ=значение' и 'ключ=значение,ключ=значение'. | ||
| mode | да |
| Переключает поведение модуля между режимами put (загрузка), get (скачивание), geturl (возврат URL-адреса скачивания, Ansible 1.3+), getstr (скачивание объекта как строки (1.3+)), list (список ключей, Ansible 2.0+), create (ведро), delete (ведро) и delobj (удаление объекта, Ansible 2.0+). | |
| object | нет | Имя ключа объекта внутри ведра. Может использоваться для создания «виртуальных каталогов», см. примеры. | ||
| overwrite | нет | всегда | Принудительно перезаписывать локально на файловой системе или удаленно с объектом/ключом. Используется с операциями PUT и GET. Булево или одно из [всегда, никогда, другое], true эквивалентно 'всегда', а false эквивалентно 'никогда', ново в 2.0 | |
| permission (добавлено в 2.0)
| нет | private | Этот параметр позволяет пользователю устанавливать стандартные разрешения на создаваемый объект/ведро. Разрешения, которые можно установить, — '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' для объекта. Несколько разрешений можно указать как список. | |
| prefix (добавлено в 2.0)
| нет | Ограничивает ответ ключами, начинающимися с указанного префикса, для режима list. | ||
| profile (добавлено в 1.6)
| нет | Использует профиль boto. Работает только с boto >= 2.24.0. | ||
| region (добавлено в 1.8)
| нет | Регион AWS для создания ведра. Если не задан, проверяются значения переменных окружения AWS_REGION и EC2_REGION, а затем настройки aws_region и ec2_region в файле конфигурации Boto. Если ни один из них не задан, регион по умолчанию — S3 Location: US Standard. До версии Ansible 1.8 этот параметр можно было указать, но он не имел эффекта. | ||
| retries (добавлено в 2.0)
| нет | При восстановленной ошибке сколько раз повторить попытку перед фактическим отказом. | ||
| rgw (добавлено в 2.2)
| нет | Включить поддержку S3 Ceph RGW. Этот параметр требует явного URL-адреса через s3_url. | ||
| s3_url | нет | Конечная точка URL-адреса S3 для использования с Ceph, Eucalypus, fakes3 и т. д. В противном случае предполагается AWS псевдонимы: S3_URL | ||
| security_token (добавлено в 1.6)
| нет | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | ||
| src (добавлено в 1.3)
| нет | Путь к исходному файлу при выполнении операции PUT. | ||
| validate_certs (добавлено в 1.5)
| нет | да |
| Если установлено «нет», сертификаты SSL не будут проверены для версий boto >= 2.6.0. |
| version (добавлено в 2.0)
| нет | Идентификатор версии объекта внутри ведра. Может использоваться для получения определенной версии файла, если в целевом ведре включена версия. |
Примеры
- name: Simple PUT operation
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
src: /usr/local/myfile.txt
mode: put
- name: Simple PUT operation in Ceph RGW S3
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
src: /usr/local/myfile.txt
mode: put
rgw: true
s3_url: "http://localhost:8000"
- name: Simple GET operation
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
dest: /usr/local/myfile.txt
mode: get
- name: Get a specific version of an object.
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
version: 48c9ee5131af7a716edc22df9772aa6f
dest: /usr/local/myfile.txt
mode: get
- name: PUT/upload with metadata
aws_s3:
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
aws_s3:
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
aws_s3:
bucket: mybucket
mode: list
- name: List keys all options
aws_s3:
bucket: mybucket
mode: list
prefix: /my/desired/
marker: /my/desired/0023.txt
max_keys: 472
- name: Create an empty bucket
aws_s3:
bucket: mybucket
mode: create
permission: public-read
- name: Create a bucket with key as directory, in the EU region
aws_s3:
bucket: mybucket
object: /my/directory/path
mode: create
region: eu-west-1
- name: Delete a bucket and all contents
aws_s3:
bucket: mybucket
mode: delete
- name: GET an object but don't download if the file checksums match. New in 2.0
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
dest: /usr/local/myfile.txt
mode: get
overwrite: different
- name: Delete an object from a bucket
aws_s3:
bucket: mybucket
object: /my/desired/key.txt
mode: delobj
Примечания
Примечание
- В версии 2.4 этот модуль был переименован из s3 в aws_s3.
- Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_ACCESS_KEY_IDилиAWS_ACCESS_KEYилиEC2_ACCESS_KEY,AWS_SECRET_ACCESS_KEYилиAWS_SECRET_KEYилиEC2_SECRET_KEY,AWS_SECURITY_TOKENилиEC2_SECURITY_TOKEN,AWS_REGIONилиEC2_REGION - Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. http://boto.readthedocs.org/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONобычно используются для указания региона AWS, когда это необходимо, но это также можно настроить в файле конфигурации boto
Статус
Этот модуль помечен как stableinterface, что означает, что авторы модуля гарантируют, что не будет вноситься обратной совместимости с изменением интерфейса.
Информация о техническом обслуживании
Для получения дополнительной информации о поддержке этого модуля компанией Red Hat, пожалуйста, обратитесь к этому knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>
Для получения помощи в разработке модулей, если вы заинтересованы, пожалуйста, прочитайте Информацию о сообществе и вклад, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/aws_s3_module.html