2017-04-07 65 views
0

我試圖在PHP中實現S3客戶端,該客戶端一次只能通過分頁功能列出10個文件。爲了實現這一點,具體根據API文檔,我正在做以下調用:AWS S3 ListObjectsV2返回MaxKeys僅設置爲10的文件的完整列表

$result = $this->s3->getPaginator('ListObjectsV2', [ 
      'Bucket'  => 'my_s3_bucket_name', 
      'Delimiter' => '/', 
      'MaxKeys'  => 10, 
      'StartAfter' => urlencode($_SESSION['prev_key']) 
     ]); 

並使用JMESPath表達式提取數據的子集,我需要顯示。上述似乎「工作」,但它似乎檢索每個包含10個文件的子子集的JSON集。換句話說,如果我有26個文件存儲在我的存儲桶中,那麼我會在3個數組子集中獲得全部26個文件 - 全部都是單個請求。顯然,S3已經有很長的一段時間了,我確信有一個最佳實踐是我想要實現的。但是,我搜索了幾天沒有用。如果任何人都可以在正確的方向請...

回答

1

點指向我的分頁程序是讓一切 - 做必要的分頁來獲取完整的結果。

而當你正在使用它,它會在套10

來完成。如果你想具體的要求,如你在這裏展示,不使用分頁程序,只需使用ListObjectsV2直接。

此外,我懷疑這是否適合或需要urlencode()前一個關鍵。如果需要,SDK應該爲你做。