在气流中将文件从一个 s3 复制到另一个 s3 的最佳操作员是什么?我已经尝试过S3FileTransformOperator,但它需要transform_script 或select_expression。我的要求是将确切的文件从源复制到目标。
使用S3CopyObjectOperator
copy_step = S3CopyObjectOperator(
source_bucket_key='source_file',
dest_bucket_key='dest_file',
aws_conn_id='aws_connection_id',
source_bucket_name='source-bucket',
dest_bucket_name='dest-bucket'
)
Run Code Online (Sandbox Code Playgroud)
你有两个选择(即使我忽略Airflow)
cp命令
aws s3 cp <source> <destination>Airflow可以使用BashOperator(本地计算机)或SSHOperator(远程计算机)运行此命令boto3
boto3'sS3ClientS3Hookcopy_object(..)的 方法S3Client也可以在S3Hookas 中使用(再次)copy_object(..)S3Hook在任何合适的自定义内部使用operator或只是PythonOperator