PHPS3-如何获取特定文件的所有版本

PHPS3-如何获取特定文件的所有版本,php,laravel,amazon-web-services,amazon-s3,Php,Laravel,Amazon Web Services,Amazon S3,我有一个Laravel项目和一个支持版本的S3 bucket。我可以使用listObjectVersions方法列出bucket中所有对象的版本 我尝试列出特定对象的版本,如下所示: $result = $client->listObjectVersions([ 'Bucket' => \Config::get('filesystems.disks.s3.bucket'), 'Key' => $folder . '/'

我有一个Laravel项目和一个支持版本的S3 bucket。我可以使用
listObjectVersions
方法列出bucket中所有对象的版本

我尝试列出特定对象的版本,如下所示:

     $result = $client->listObjectVersions([
            'Bucket' => \Config::get('filesystems.disks.s3.bucket'),
            'Key' => $folder . '/' . 'test.png',
        ]);
这似乎得到了桶中的所有对象,这不是我想要的。有没有办法只获取一个文件

我正在使用AWS PHP SDK


谢谢

您可以使用“前缀”而不是“键”:

        $client = new S3Client([
            'version' => 'latest',
            'region' => 'eu-west-1'
        ]);

        $folder = $this->getS3Folder($request, $study);

        $result = $client->listObjectVersions([
            'Bucket' => \Config::get('filesystems.disks.s3.bucket'),
            'Prefix' => $folder . '/' . 'test.png',
        ]);

您需要循环浏览ObjectVersions,然后逐个下载每个版本。谢谢。我本以为这是一个常见的用例,但也许有一个很好的理由将责任委托给消费者。