Reputation: 700
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...
Upvotes: 0
Views: 2882
Reputation: 179364
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.
Upvotes: 2