Airflow:如何通过smbclient从Linux下载文件到Windows

问题描述 投票:0回答:1

我有一个DAG,可以将数据从源导入服务器。从那里,我希望从服务器下载该文件到Windows网络。我想将此部分保留在Airflow中以实现自动化。有谁知道如何在Airflow中这样做?我不确定是否使用os包,shutil包,或者可能有不同的方法。

python airflow samba smb
1个回答
0
投票

我想你在说你正在寻找一种方法将文件从云端服务器转移到Windows共享驱动器或Windows网络中的计算机上,这些是我见过的一些选项:

  1. 使用google drive,dropbox,box或s3等服务来模拟云计算机上的同步文件夹和Windows网络中的计算机。
  2. 将一个bash命令调用给SCP,将文件发送到Windows服务器或网络中的工作人员。这也可能在相反的方向上起作用。
  3. 将文件添加到git存储库,并让Windows网络中的工作人员将存储库同步到共享位置。此选项仅适用于非常特殊的情况。它的好处是,您可以跟踪更改并恢复旧状态(如果数据是CSV或其他文本格式),但它对于大文件或二进制文件并不好。
  4. 使用rsync将文件传输到已安装共享位置的Windows网络中的工作人员,并使用python或bash将文件移动到同步目录。
  5. 将网络驱动器安装到服务器并使用python或bash将文件移动到那里。

所有这些都应该可以通过Airflow使用python(shutil)或bash脚本将文件传输到正确的目录以便其他进程获取或通过调用bash子进程来执行SCP的直接传输或通过git提交数据。您必须了解防火墙和网络设置的可能性。其中一些需要在Windows端协调任务(例如,git选项需要某种类型的cron作业或任务调度程序来拉动存储库以使文件保持最新)。

© www.soinside.com 2019 - 2024. All rights reserved.