Копирование файлов из одной корзины Google Cloud Storage в другую с помощью Apache Airflow

Проблема: я хочу скопировать файлы из папки в Google Cloud Storage Bucket (например, Folder1 в Bucket1) в другой Bucket (например, Bucket2). Я не могу найти оператора воздушного потока для облачного хранилища Google для копирования файлов.


person kaxil    schedule 23.11.2017    source источник


Ответы (3)


Я только что нашел нового оператора в contrib, загруженного 2 часа назад: https://github.com/apache/incubator-airflow/blob/master/airflow/contrib/operators/gcs_to_gcs.py с именем GoogleCloudStorageToGoogleCloudStorageOperator, который должен копировать объект из корзины в другую, с переименованием, если просил.

person kaxil    schedule 23.11.2017

Я знаю, что это старый вопрос, но я тоже столкнулся с этой задачей. Поскольку я использую Google Cloud-Composer, GoogleCloudStorageToGoogleCloudStorageOperator недоступен в текущей версии. Мне удалось решить эту проблему с помощью простого BashOperator

    from airflow.operators.bash_operator import BashOperator

with models.DAG(
            dag_name,
            schedule_interval=timedelta(days=1),
            default_args=default_dag_args) as dag:

        copy_files = BashOperator(
            task_id='copy_files',
            bash_command='gsutil -m cp <Source Bucket> <Destination Bucket>'
        )

Это очень просто, может создавать папки, если вам нужно, и переименовывать файлы.

person Ary Jazz    schedule 11.11.2018

Вы можете использовать GoogleCloudStorageToGoogleCloudStorageOperator

Приведенный ниже код перемещает все файлы из исходного сегмента в место назначения.

Пакет: https://airflow.apache.org/docs/stable/_api/airflow/contrib/operators/gcs_to_gcs/index.html.

backup_file = GoogleCloudStorageToGoogleCloudStorageOperator(
    task_id='Move_File_to_backupBucket',
    source_bucket='adjust_data_03sept2020',
    source_object='*.csv',
    destination_bucket='adjust_data_03sept2020_backup',
    move_object=True,
    google_cloud_storage_conn_id='connection_name',
    dag=dag
)   
person user3816325    schedule 08.09.2020