我目前正在使用AWS PHP SDK的最新版本(V3)。我想从最后X天开始从我的桶中获取所有对象键。我试图使用here描述的搜索功能,它使用JMESPath表达式。
This comment似乎很有希望,但是当我尝试以下内容时:
$results = $s3Client->getPaginator('ListObjectsV2', ['Bucket' => 'testbucket', 'Prefix' => 'someprefix']);
foreach ($results->search('Contents[?LastModified>=`2017-01-01`][].{Key: Key}') as $result) {
echo $result;
}
即使我的对象比这个日期更新,我也什么都没得到。但是,当我尝试时,例如:
foreach ($results->search('Contents[?Size>=`1024`][].{Key: Key}') as $result) {
echo $result;
}
它似乎有效,我得到了预期的结果。我的密钥是20170120-211752-24-file.csv
的一般格式,所以我想我可以在第一个连字符之前删除日期,循环遍历所有密钥,并进行比较,但理想情况下我不想抽取数千个密钥对象并在搜索后执行此操作。
有什么想法吗?