我有一个本地NiFi流程,它在本地读取文件并通过cmd行参数将其提供给python脚本。但是,我现在希望NiFi读取存储在Amazon S3
中的其他文件,并将它们输入我的python脚本。
我使用ListS3
和FetchS3
处理器来获取文件,并且我可以访问s3.bucket
和filename
等与{{1}中存储的文件完全匹配的变量}}
我还使用S3
合并来自MergeContent
处理器的多个文件。我的python脚本确实包含多个这样的文件:
FetchS3
python脚本读取文件以处理其中的数据。但是,对于python myScript.py -f ~/temp/file1.txt -k ~/temp/file2.txt
而言,无论我在S3
中添加哪种格式,我都会遇到此错误:
file path
尝试运行这样的事情时:
Error=[Errno 2] No such file or directory: 'myS3bucket/s3-files/File1.txt'
处理器内的 python myScript.py -f ${s3.bucket}/${filename}
。
答案 0 :(得分:3)
您的文件一旦在S3中的NiFi中,就会通过内容存储库进行管理,并且默认情况下不会存在于相同位置的文件系统中。您可以使用PutFile将文件写入磁盘,然后调用您的脚本。