我正在使用NSOutlineView
处理器从ListS3
获取文件并将其传输到S3
处理器。从那里我使用RouteOnAttribute
作为Route to Property name
并根据我正在收听的文件分配属性。
我能够看到我想要的所有文件但是无法对它们做任何事情,因为我的另一个处理器需要这些文件的Routing Strategy
。我使用的是一个python脚本,它将full path
作为cmd行参数。
如何从file path
?
答案 0 :(得分:2)
您可以使用一系列NiFi处理器在本地列出,下载和保存S3文件,如下所示:
ListS3 - 要获取对可以过滤的S3对象的引用。 ListS3的输出仅包含对象的引用,而不包含属性中的内容本身:
my-bucket
path/to/file.txt
FetchS3Object - 使用上面的ListS3中的存储桶和密钥从S3下载对象内容。
Directory
属性/path/to/directory
。 S3中的 filename 属性将包含来自S3键的相对路径,因此默认情况下会将这些路径添加到Directory
。然后,您可以使用NiFi表达式语言为您的Python脚本组装本地路径:
/path/to/directory/${filename}