Я пытаюсь получить все файлы в корзине, которые идут после определенного идентификатора.
Вот мой код, опущены не относящиеся к делу части.
require_once LIB . DS . 'Aws/vendor/autoload.php';
use Aws\S3\S3Client as S3Client;
use Aws\Credentials as Credentials;
$s3 = new S3Client([
'region' => $region,
'version' => 'latest',
'key' => AWS_KEY,
'secret' => AWS_SECRET,
'credentials' => $credentials
]
);
$data = $s3->listObjectsV2(
[
'Bucket' => <MY BUCKET>,
// the response content should be after this record
'StartAfter' => '302760677',
'MaxKeys' => 2
]);
print_r($data);
Результат, который я получаю, выглядит следующим образом:
Aws\Result Object
(
[data:Aws\Result:private] => Array
(
[IsTruncated] => 1
[Contents] => Array
(
[0] => Array
(
[Key] => json/300705/300705046/status.json
[LastModified] => Aws\Api\DateTimeResult Object
(
[date] => 2018-06-20 11:45:06.000000
[timezone_type] => 2
[timezone] => Z
)
[ETag] => "2777f5fabc31969108b16cd8459d3b5d"[Size] => 945
[StorageClass] => STANDARD
)
[1] => Array
(
[Key] => json/300705/300705046/address.json
[LastModified] => Aws\Api\DateTimeResult Object
(
[date] => 2018-06-20 11:45:06.000000
[timezone_type] => 2
[timezone] => Z
)
[ETag] => "3fd8ef54a83e93d470f5438079f51345"[Size] => 477
[StorageClass] => STANDARD
)
)
)
)
Здесь возвращаемое содержимое ответа показывает данные для ключа — 300705046, что меньше того, что я указал в моем узле «StartAfter» в запросе.
Может ли кто-нибудь помочь мне понять, что я могу делать неправильно.
Спасибо
StartAfter (документы) должен быть точным ключом.
Из ответа не похоже, что это так, например, вам может потребоваться запрос с помощью:
'StartAfter' => 'json/302760/302760677/address.json',
Других решений пока нет …