Как получить список локальных файлов, которые изменились с момента последней загрузки в хранилище S3

changing_assets = `s3cmd sync --dry-run -P -M --exclude=*.php --delete-removed #{preprod_release_dir}/web/ #{s3_bucket} | grep -E 'delete:|upload:' | awk '{print $2}' | sed s_#{preprod_release_dir}/web__`


Команда s3cmd sync --dry-run -p -m --exclude=*.php --delete-removed #{preprod_release_dir}/web/ #{s3_bucket} | grep -e 'delete:|upload:' | awk '{print $2}' | sed s_#{preprod_release_dir}/web__ позволяет получить список локальных файлов, которые изменились с момента последней загрузки в хранилище Amazon S3.

Команда s3cmd sync с параметрами --dry-run -p -m --exclude=*.php --delete-removed синхронизирует локальную директорию #{preprod_release_dir}/web/ с S3-хранилищем #{s3_bucket}, но не выполняет реальную синхронизацию. Она выводит только список файлов, которые были бы удалены или загружены.

Последующие команды grep -e 'delete:|upload:', awk '{print $2}' и sed s_#{preprod_release_dir}/web__ выполняют обработку вывода команды s3cmd sync для получения только списка файлов.

Альтернативой данной команде может быть использование других инструментов для работы с Amazon S3 API, таких как AWS CLI (Command Line Interface) или программирование на языке Python с использованием библиотеки Boto3.

Аргументы, передаваемые команде, включают в себя путь к локальной директории #{preprod_release_dir}/web/ и имя S3-бакета #{s3_bucket}.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *