根据https://stackoverflow.com/a/65675842/569976list-objects-v2
,您可以使用 AWS S3 CLI 客户端按上次修改日期对a 的结果进行排序,如下所示:
aws s3api list-objects --bucket bucketname --query 'sort_by(Contents, &LastModified)[-1].Key' --output text
我的问题是...如何使用 PHP 客户端 / 做到这一点Aws\S3\S3Client::listObjects
?
https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#listobjects提到了一堆可以传递给它的选项,但它们都不是“询问”:
$result = $client->listObjects([
'Bucket' => '<string>', // REQUIRED
'Delimiter' => '<string>',
'EncodingType' => 'url',
'ExpectedBucketOwner' => '<string>',
'Marker' => '<string>',
'MaxKeys' => <integer>,
'OptionalObjectAttributes' => ['<string>', ...],
'Prefix' => '<string>',
'RequestPayer' => 'requester',
]);
PHP API 客户端无法实现吗?
--query
是AWS CLI 支持的客户端参数。它不是 API 的一部分。您需要对 PHP 代码中的结果进行排序。
该参数使用JMESPath作为修改输出结果的脚本语言。如果您想完全模仿它的行为,您可以使用 JMESPath 库,例如这个。