【AWS】Lambda S3 listobjects 超過1000筆

24 8月, 2018

【AWS】Lambda S3 listobjects 超過1000筆




最近有遇到一個案例,用戶數據存放在AWS的S3上。
在統計數據資料數量的時候,
透過Lambda的listobjects去將 S3的檔案全部列出。
但是卻遇到了Lambda的listobjects鎖死在1000筆的問題


也就是不論bucket超過1000筆以上的數據資料,
最後回來的array物件資料都會鎖死在1000筆。


而解決方式如下:

Lambda的listobjects 有一個屬性max-keys 
是用來控制list回來的物件數量,初始預設值為1000。
可以配置這個屬性來控制listobjects 



設置好max-keys後,配置如下:



但發現運行後,還是鎖死在1000...
查找文檔後才發現,
max-keys 最大值也是1000....

這個問題就大條了,
後來終於找到一個正規的方式來解決這個問題。

Lambda listobjects 是有提供「分頁機制」

也就是listobjects 並不是鎖死在1000筆,
而是一頁的最大Key值數量為1000。

分頁機制的寫法如下:


加上分頁以後,就可以全數地將list跑過一次。

就可以解決1000筆的數量問題。

張貼留言