如何使用Airflow FTPHook从GCS向ftp服务器上载文件/从ftp服务器上载文件

时间:2018-08-01 21:11:52

标签: google-cloud-storage airflow

我目前正在尝试在Airflow中使用FTPHook,以便将文件上传到远程ftp或从远程ftp下载文件。但是我不确定是否可以将gs://路径用作源/目标路径的一部分。 我目前不希望在AF窗格中使用本地文件夹,因为文件大小可能会变大,所以我宁愿直接使用gcs路径还是gcs文件流。

conn = FTPHook(ftp_conn_id='ftp_default')
conn.store_file('in', 'gs://bucket_name/file_name.txt')

链接到FTPHook代码: here

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

GCS没有实现FTP支持,因此将无法使用。 看起来FTP挂钩只知道如何处理本地文件路径或缓冲区,而不是GCS API之一。

您也许可以找到(或编写)一些从FTP读取并写入GCS的代码。

答案 1 :(得分:0)

我找到了一个简单的流媒体解决方案,可以使用pysftp从gcs上传/下载到ftp服务器,反之亦然,我想与您分享。 首先,我找到了this解决方案,该解决方案效果很好,但是该解决方案的唯一问题是它不支持从gcs向FTP上传文件。所以我在寻找其他东西。 因此,与我正在研究的不同方法相比,我发现了这个Google document,它基本上可以让您流向/从blob文件中进行流传输,而这正是我所要的。

"No mode found"