2017-02-17 120 views
2

我在我的S3 bucket上有以下文件。如何通过匹配文件名从S3中获取文件?

. 
|__ bob.jpg 
|__ bob.jpg.gz 
|__ sam.jpg 
|__ sam.jpg.gz 
|__ joe.jpg 
|__ joe.jpg.gz 

我有一个FetchS3处理器提取文件。但是,现在它提取所有文件,我想要做的是基于名称成对读取文件。例如,在一次传递中,我需要bob*文件,然后是sam*文件,最后是两个joe*文件。

因为我饲养每对文件放到我的python脚本的路线,我cannot allow这样的事情:

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文件以及相同的文件名。

再说一遍,这个想法说起来容易做起来难,我也没有真正去过任何地方。

回答

1

我创建了一个template,您应该可以从中完成要查找的内容。我假设命名策略是恒定的(即joe.jpg将总是翻译为joe.jpg.gz)。

此模板使用ListFile阅读“源”,从目录中的文件(无.gz),然后更新的属性有一个image_filenamegzip_filename,并将它们传递到ExecuteStreamCommand处理器,其引用的属性参数到命令(在这种情况下为echo)。

可能有一个更简洁的方法来做到这一点,但我还没有做了大量的工作与ListFile/FetchFile处理器。

Template screenshot