Spec-Zone.ru › Ansible 2.9

s3_sync – Эффективно загружать несколько файлов в S3

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

Краткое описание

  • Модуль 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, задаваемый для загруженных объектов.
Директивы разделяются запятыми.
debug_botocore_endpoint_logs
логический тип
добавлен в 2.8
    Варианты:
  • нет ←
  • да
Используйте логирование botocore.endpoint для анализа уникальных (а не общих) API-вызовов «resource:action», выполненных во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода в общий список, созданный во время выполнения. Переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS также может быть использована.
delete
логический тип
добавлен в 2.4
    Варианты:
  • нет ←
  • да
Удаление удаленных файлов, которые существуют в ведре, но отсутствуют в корневой папке файлов.
ec2_url
строка
URL для подключения к EC2 или вашей облачной платформе Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не указан, используется значение переменной окружения EC2_URL, если таковое имеется.
exclude
-
Значение по умолчанию:
".*"
Соответствие файлам по шаблону оболочки.
Используется после include для удаления файлов (например, пропустить "*.txt")
Для нескольких шаблонов разделяйте их запятыми.
file_change_strategy
-
    Варианты:
  • force
  • checksum
  • date_size ←
Метод определения различий для синхронизации только изменений. В отличие от rsync, файлы не исправлят — они полностью пропускаются или полностью загружаются.
date_size будет загружать файл, если размеры файлов не совпадают или если локальная дата изменения файла новее, чем версия в S3.
checksum сравнивает значения etag на основе реализации S3 chunked md5.
force всегда загрузит все файлы.
file_root
- / обязательно
Путь к файлам/каталогам для синхронизации. Это локальный путь.
Этот корневой путь удаляется из имени ключа, поэтому подкаталоги останутся как ключи.
include
-
Значение по умолчанию:
"*"
Соответствие файлам по шаблону оболочки.
Используется перед exclude для определения подходящих файлов (например, только "*.gif")
Для нескольких шаблонов разделяйте их запятыми.
key_prefix
-
В дополнение к пути к файлам, добавьте в путь S3 этот префикс. Модуль добавит косой слэш в конец префикса, если это необходимо.
mime_map
-
Элемент словаря с расширением до типа MIME. Это переопределит любой тип MIME по умолчанию/распознанный. Например {".txt": "application/text", ".yml": "application/text"}
mode
-
    Варианты:
  • загрузка ←
Направление синхронизации.
permission
-
    Варианты:
  • private
  • public-read
  • public-read-write
  • authenticated-read
  • aws-exec-read
  • bucket-owner-read
  • bucket-owner-full-control
Предопределенные разрешения доступа, применяемые к синхронизированным файлам.
Изменение этих разрешений доступа затрагивает только недавно синхронизированные файлы, это не приводит к полной загрузке.
profile
строка
Использует профиль 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
строка
AWS STS security token. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.

Псевдонимы: access_token
validate_certs
логический тип
    Варианты:
  • нет
  • да ←
При значении "нет", сертификаты 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), если учетные данные не предоставлены. См. https://boto.readthedocs.io/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. [сообщество]

Авторы

  • Ted Timmons (@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.9/modules/s3_sync_module.html

Spec-Zone.ru

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