在气流中将文件从一个 s3 复制到另一个 s3 的最佳操作员是什么?我已经尝试过 S3FileTransformOperator,但它需要 transform_script 或 select_expression。我的要求是将确切的文件从源复制到目标。
6033 次
2 回答
3
利用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'
)
于 2020-01-06T13:36:20.570 回答
1
您有 2 个选项(即使我无视Airflow)
- 使用AWS CLI:
cp命令aws s3 cp <source> <destination>- 在
Airflow此命令中可以使用BashOperator(本地机器)或SSHOperator(远程机器)运行
- 使用AWS 开发工具包
boto3- 在这里你将使用
boto3'sS3Client - Airflow 已经为其提供了一个包装器,形式为
S3Hook - 甚至
copy_object(..)方法S3Client在 as 中可用S3Hook(再次)copy_object(..) - 您可以
S3Hook在任何合适的自定义operator或仅使用PythonOperator
- 在这里你将使用
于 2019-03-13T06:59:45.677 回答