2016-05-29 80 views
0

我想僅提取之前從S3存儲桶中讀取的文件。我也需要他們的文件名,以便我知道在每次迭代中處理哪些文件。獲取S3存儲桶中的最新文件

我決定我現在不想實現一個隊列監聽器,所以使用通知不是我想要的。

我考慮過使用downloadBucket API並打開「調試」,然後解析結果以找到下載的文件。

有誰知道更好的方法,或者如果打開調試會影響性能?

我正在使用laravel/php來執行此操作。

+1

我認爲S3並不是一個簡單的方法,因爲S3只是裸存儲。 – markvdlaan93

+0

*「我決定現在不想實現隊列監聽器」*考慮到這實際上是最佳解決方案......爲什麼不呢? –

+0

@ Michael-sqlbot a)我需要實現一個監聽器 - 這是更多的代碼,這意味着花費更多的時間。 b)如果我有兩個系統需要對同一個目錄執行此操作 - 這可能會帶有兩個隊列,但這並不會隨着我的努力而擴展 - 這很昂貴。 – NiRR

回答

0

S3在list_objects中沒有過濾器功能。因此,你可以做的最好的事情是將處理後的文件移動到新的存儲桶或前綴。所以你不必擔心哪個鍵被「處理」。

因此你可以這樣做(算法,而不是代碼)

- store new_key to new/ folder 
    - select everything in new/ prefix 
    - process each key 
    - copy key to proceesed/ prefix 
    - delete key in new/ prefix 

注:每1000 PUT /複印/ POST/LIST將花費你0.005美分。所以謹慎使用它。

相關問題