0
我想僅提取之前從S3存儲桶中讀取的文件。我也需要他們的文件名,以便我知道在每次迭代中處理哪些文件。獲取S3存儲桶中的最新文件
我決定我現在不想實現一個隊列監聽器,所以使用通知不是我想要的。
我考慮過使用downloadBucket API並打開「調試」,然後解析結果以找到下載的文件。
有誰知道更好的方法,或者如果打開調試會影響性能?
我正在使用laravel/php來執行此操作。
我想僅提取之前從S3存儲桶中讀取的文件。我也需要他們的文件名,以便我知道在每次迭代中處理哪些文件。獲取S3存儲桶中的最新文件
我決定我現在不想實現一個隊列監聽器,所以使用通知不是我想要的。
我考慮過使用downloadBucket API並打開「調試」,然後解析結果以找到下載的文件。
有誰知道更好的方法,或者如果打開調試會影響性能?
我正在使用laravel/php來執行此操作。
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美分。所以謹慎使用它。
我認爲S3並不是一個簡單的方法,因爲S3只是裸存儲。 – markvdlaan93
*「我決定現在不想實現隊列監聽器」*考慮到這實際上是最佳解決方案......爲什麼不呢? –
@ Michael-sqlbot a)我需要實現一個監聽器 - 這是更多的代碼,這意味着花費更多的時間。 b)如果我有兩個系統需要對同一個目錄執行此操作 - 這可能會帶有兩個隊列,但這並不會隨着我的努力而擴展 - 這很昂貴。 – NiRR