Apache Airflow: оператор для копирования s3 в s3 - PullRequest
0 голосов
/ 13 марта 2019

Какой оператор лучше всего скопировать файл с одного s3 на другой s3 в потоке воздуха?Я уже пробовал S3FileTransformOperator, но он требовал либо transform_script, либо select_expression.Мое требование - скопировать точный файл из источника в место назначения.

1 Ответ

2 голосов
/ 13 марта 2019

У вас есть 2 варианта (даже если я игнорирую Airflow)

  1. Использование AWS CLI : cp команда
    • aws s3 cp <source> <destination>
    • В Airflow эту команду можно запустить, используя BashOperator (локальный компьютер) или SSHOperator (удаленный компьютер)
  2. Использование AWS SDK aka boto3
    • Здесь вы будете использовать boto3 S3Client
    • Воздушный поток уже предоставляет обертку над ним в виде S3Hook
    • Четный copy_object(..) метод S3Client доступен в S3Hook как (снова) copy_object(..)
    • Вы можете использовать S3Hook внутри любого подходящего пользовательского operator или просто PythonOperator
...