Amazon s3 如何通过匹配文件名从S3成对地获取文件?
我的Amazon s3 如何通过匹配文件名从S3成对地获取文件?,amazon-s3,apache-nifi,Amazon S3,Apache Nifi,我的S3存储桶中有以下文件 . |__ bob.jpg |__ bob.jpg.gz |__ sam.jpg |__ sam.jpg.gz |__ joe.jpg |__ joe.jpg.gz 我有一个提取文件的FetchS3处理器。但是,现在它获取所有文件,我要做的是根据名称成对地获取文件。例如,在一个过程中,我需要两个bob*文件,然后是两个sam*文件,最后是两个joe*文件 由于我将每一对文件都输入到python脚本中,因此我不能允许这样的事情发生: python myscript.p
S3存储桶中有以下文件
.
|__ bob.jpg
|__ bob.jpg.gz
|__ sam.jpg
|__ sam.jpg.gz
|__ joe.jpg
|__ joe.jpg.gz
我有一个提取文件的FetchS3
处理器。但是,现在它获取所有文件,我要做的是根据名称成对地获取文件。例如,在一个过程中,我需要两个bob*
文件,然后是两个sam*
文件,最后是两个joe*
文件
由于我将每一对文件都输入到python脚本中,因此我不能允许这样的事情发生:
python myscript.py-file1=“bob.jpg”-file2=“sam.jpg”
我要寻找的是以正确的文件对获取文件,以便在每次传递时调用python脚本,如下所示:
python myscript.py-file1=“bob.jpg”-file2=“bob.jpg.gz”
python myscript.py-file1=“sam.jpg”-file2=“sam.jpg.gz”
python myscript.py-file1=“joe.jpg”-file2=“joe.jpg.gz”
我正在考虑使用一个UpdateProcessor
来定义一个jpg
文件,如果该文件存在,则自动假定对于相同的文件名也必须有一个jpg.gz
文件
再说一次,这个想法说起来容易做起来难,我没有真正取得任何进展。我创建了一个可以让你做你想做的事情的网站。我继续假设命名策略是恒定的(即,joe.jpg
将始终转换为joe.jpg.gz
)
此模板使用ListFile
从目录中仅读取“源”文件(无.gz
),然后更新属性,使其具有image\u文件名
和gzip\u文件名
,并将它们传递给ExecuteStreamCommand
处理器,该处理器将这些属性作为命令的参数引用(echo
在本例中)
也许有一种更简洁的方法可以做到这一点,但我还没有用ListFile
/FetchFile
处理器做过很多工作