I'm trying to implement S3 client in PHP that lists only 10 files at a time through pagination feature. To accomplish this, as per the API doc, i'm making following call:
$result = $this->s3->getPaginator('ListObjectsV2', [
'Bucket' => 'my_s3_bucket_name',
'Delimiter' => '/',
'MaxKeys' => 10,
'StartAfter' => urlencode($_SESSION['prev_key'])
]);
and using JMESPath expression to extract the subset of data that i need to display. The above seems to "work" but it seems to retrieve JSON set with child subsets containing 10 files each. In other words, if i had 26 files stored on my bucket, i'd get all 26 files in 3 subsets of array--all in single request. Obviously, S3 has been around long time and i'm sure there's a best practice for what i'm trying to achieve. However, i've searched for past few days to no avail. If anyone could point me in the right direction pls...
The point of the paginator is to get everything -- doing the pagination necessary to fetch the full result.
And as you're using it, it would be done in sets of 10.
If you want to make a specific request, like you show here, don't use the paginator, just use ListObjectsV2
directly.
Also, I doubt that it's appropriate or necessary to urlencode()
the previous key. The SDK should do it for you if needed.