【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筆的數量問題。
張貼留言