s3_sync - Эффективно загружать несколько файлов в S3
Новое в версии 2.3.
- Описание
- Требования (для хоста, на котором выполняется модуль)
- Параметры
- Примеры
- Возвращаемые значения
- Примечания
Описание
- Модуль S3 замечательный, но он очень медленный при большом объёме файлов – даже десяток файлов заметно замедлит работу. Помимо скорости, он обрабатывает шаблоны подстановок, включения/исключения, типы MIME, отображение срока действия, рекурсию, управление кешем и умное отображение каталогов.
Требования (для хоста, на котором выполняется модуль)
- boto
- boto3 >= 1.4.4
- botocore
- python >= 2.6
Параметры
| параметр | обязательный | значение по умолчанию | варианты | комментарии |
|---|---|---|---|---|
| aws_access_key | нет | Ключ доступа AWS. Если не задан, используется значение переменной среды AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. псевдонимы: ec2_access_key, access_key | ||
| aws_secret_key | нет | Секретный ключ AWS. Если не задан, используется значение переменной среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. псевдонимы: ec2_secret_key, secret_key | ||
| bucket | да | Имя ведра. | ||
| cache_control (добавлено в 2.4)
| нет | Это строка. Заголовок Cache-Control, устанавливаемый для загружаемых объектов. Директивы разделены запятыми. | ||
| delete (добавлено в 2.4)
| нет | Удаляет удалённые файлы, которые существуют в ведре, но отсутствуют в корневом каталоге файлов. | ||
| ec2_url | нет | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если таковое имеется. | ||
| exclude | нет | .* | Сопоставление файлов по шаблону оболочки. Используется после include для удаления файлов (например, пропустить "*.txt") Для нескольких шаблонов разделяйте их запятыми. | |
| file_change_strategy | нет | date_size |
| Метод определения различий для синхронизации только изменений. В отличие от rsync, файлы не обновляются – они полностью пропускаются или полностью загружаются. date_size будет загружать, если размеры файлов не совпадают или если дата изменения локального файла новее, чем версия в S3. checksum сравнивает значения etag на основе реализации s3 фрагментированных md5. force всегда будет загружать все файлы. |
| file_root | да | Путь к файлам/каталогам для синхронизации. Это локальный путь. Этот корневой путь удаляется из имени ключа, поэтому подкаталоги останутся в виде ключей. | ||
| include | нет | * | Сопоставление файлов по шаблону оболочки. Используется перед exclude для определения допустимых файлов (например, только "*.gif") Для нескольких шаблонов разделяйте их запятыми. | |
| key_prefix | нет | В дополнение к пути к файлам, добавляет этот префикс к пути в S3. Модуль добавит слеш в конец префикса, если это необходимо. | ||
| mime_map | нет | Элемент словаря, сопоставляющий расширение с типом MIME. Это переопределит любой тип MIME по умолчанию/определённый по анализу. Например {".txt": "application/text", ".yml": "appication/text"} | ||
| mode | да | push |
| Направление синхронизации. |
| permission | нет |
| Установленный ACL для синхронизированных файлов. Изменение этого ACL влияет только на недавно синхронизированные файлы, оно не вызывает полную перезагрузку. | |
| profile (добавлено в 1.6)
| нет | Использует профиль boto. Работает только с boto >= 2.24.0. | ||
| region | нет | Регион AWS, который нужно использовать. Если не указан, используется значение переменной среды AWS_REGION или EC2_REGION, если таковое имеется. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region | ||
| security_token (добавлено в 1.6)
| нет | Токен безопасности AWS STS. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | ||
| validate_certs (добавлено в 1.5)
| нет | да |
| При значении "нет" сертификаты SSL для boto версий >= 2.6.0 не будут проверятся. |
Примеры
- name: basic upload
s3_sync:
bucket: tedder
file_root: roles/s3/files/
- name: all the options
s3_sync:
bucket: tedder
file_root: roles/s3/files
mime_map:
.yml: application/text
.json: application/text
key_prefix: config_files/web
file_change_strategy: force
permission: public-read
cache_control: "public, max-age=31536000"
include: "*"
exclude: "*.txt,.*"
Возвращаемые значения
Общие возвращаемые значения описаны здесь Возвращаемые значения, следующие поля уникальны для этого модуля:
| имя | описание | возвращается | тип | пример |
|---|---|---|---|---|
| filelist_actionable | список файлов (списки словарей) файлов, которые будут загружены после принятия решения по стратегии | всегда | список | [{'s3_path': 's3sync/policy.json', 'whysize': '151 / 151', 'modified_epoch': 1477931256, 'bytes': 151, 'whytime': '1477931256 / 1477929260', 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'mime_type': 'application/json'}] |
| filelist_initial | список файлов (списки словарей) из начального сопоставления по шаблонам | всегда | список | [{'modified_epoch': 1477416706, 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'bytes': 151}] |
| filelist_local_etag | список файлов (списки словарей), включая рассчитанный локальный etag | всегда | список | [{'s3_path': 's3sync/policy.json', 'modified_epoch': 1477416706, 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'bytes': 151, 'mime_type': 'application/json'}] |
| filelist_s3 | список файлов (списки словарей), включая информацию о ранее загруженных версиях | всегда | список | [{'s3_path': 's3sync/policy.json', 'modified_epoch': 1477416706, 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'bytes': 151, 'mime_type': 'application/json'}] |
| filelist_typed | список файлов (списки словарей) с рассчитанными или переопределёнными типами MIME | всегда | список | [{'modified_epoch': 1477416706, 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'bytes': 151, 'mime_type': 'application/json'}] |
| uploaded | список файлов (списки словарей) файлов, которые были фактически загружены | всегда | список | [{'s3_path': 's3sync/policy.json', 'whysize': '151 / 151', 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'bytes': 151, 'whytime': '1477931637 / 1477931489'}] |
Примечания
Примечание
- Если параметры не заданы в модуле, следующие переменные окружения могут быть использованы в порядке убывания приоритета
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
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Для помощи в разработке модулей, если вы захотите, прочитайте Справочная информация по сообществу и содействие, Тестирование 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/s3_sync_module.html