2017-02-17 122 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