s3_sync — Эффективно загружает несколько файлов в S3
Новое в версии 2.3.
Обзор
- Модуль S3 замечателен, но он очень медленный для большого объёма файлов — даже десяток файлов заметно замедляет процесс. Помимо скорости, он обрабатывает подстановку шаблонов, включения/исключения, типы MIME, сопоставление сроков действия, рекурсию, управление кэшем и интеллектуальное сопоставление каталогов.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- boto
- boto3 >= 1.4.4
- botocore
- python >= 2.6
- python-dateutil
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| 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) | Значение по умолчанию: "no" | Удаление удаленных файлов, которые существуют в ведре, но отсутствуют в корневом каталоге файлов. |
| ec2_url | URL для подключения к EC2 или облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если не используется регион. Если не задан, используется значение переменной окружения EC2_URL, если таковое имеется. | |
| exclude | Значение по умолчанию: ".*" | Сопоставление файлов по шаблону оболочки. Используется после include для удаления файлов (например, пропуск "*.txt") Для нескольких шаблонов разделите их запятыми. |
| file_change_strategy |
| Метод определения различий для синхронизации только изменений. В отличие от 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": "application/text"}
| |
| mode обязательно |
| Направление синхронизации. |
| 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 bool (добавлен в 1.5) |
| При значении "no", сертификаты SSL не будут проверены для версий boto >= 2.6.0. |
Примечания
Примечание
- Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
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
Примеры
- 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 список | всегда | список файлов (списка словарей) файлов, которые будут загружены после принятия решения стратегией Пример: [{'байты': 151, 'обрезанный_путь': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'тип_mime': 'application/json', 'эпоха_модификации': 1477931256, 's3_путь': 's3sync/policy.json', 'размер_пояснение': '151 / 151', 'время_пояснение': '1477931256 / 1477929260'}] |
| filelist_initial список | всегда | список файлов (списка словарей) из начального сопоставления Пример: [{'байты': 151, 'обрезанный_путь': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'эпоха_модификации': 1477416706}] |
| filelist_local_etag список | всегда | список файлов (списка словарей), включая вычисленный локальный etag Пример: [{'байты': 151, 'обрезанный_путь': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'тип_mime': 'application/json', 'эпоха_модификации': 1477416706, 's3_путь': 's3sync/policy.json'}] |
| filelist_s3 список | всегда | список файлов (списка словарей), включая информацию о ранее загруженных версиях Пример: [{'байты': 151, 'обрезанный_путь': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'тип_mime': 'application/json', 'эпоха_модификации': 1477416706, 's3_путь': 's3sync/policy.json'}] |
| filelist_typed список | всегда | список файлов (списка словарей) с вычисленными или переопределенными типами mime Пример: [{'байты': 151, 'обрезанный_путь': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'тип_mime': 'application/json', 'эпоха_модификации': 1477416706}] |
| uploaded список | всегда | список файлов (списка словарей) файлов, которые были фактически загружены Пример: [{'байты': 151, 'обрезанный_путь': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 's3_путь': 's3sync/policy.json', 'размер_пояснение': '151 / 151', 'время_пояснение': '1477931637 / 1477931489'}] |
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. Подробнее см. Поддержка и техническое обслуживание модулей.
Список других модулей, также поддерживаемых сообществом Ansible, см. здесь.
Автор
- tedder
Подсказка
Если вы обнаружите какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/s3_sync_module.html