使用AWS SDK中的S3部分密钥和PHP

时间:2014-08-19 18:08:55

标签: php amazon-web-services amazon-s3

我正在阅读:http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.S3.S3Client.html#_getBucketCors

我有一个部分密钥ex:“/ myfolder / myinnerfolder /”

然而,myinner文件夹中实际上有很多对象(文件)。

我相信我可以这样说:

$result = $client->getObject(array(
            'Bucket' => $bucket,
            'Key'    => $key
        ));
        return $result;

如果我有完整的密钥。我怎样才能调用上面的内容,但是让它将所有对象和/或名字都返回给我?在Python中,您只需通过密钥的前面请求,但我没有看到执行此操作的选项。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要将listObjects() method'Prefix'参数一起使用。

$result = $client->listObjects(array(
    'Bucket' => $bucket,
    'Prefix' => 'myfolder/myinnerfolder/',
));
$objects = $result['Contents'];

为了使这更容易,特别是如果你有超过1000个具有该前缀的对象(通常需要多个请求),你可以使用SDK的Iterators feature

$objects = $client->getIterator('ListObjects', array(
    'Bucket' => $bucket,
    'Prefix' => 'myfolder/myinnerfolder/',
));
foreach ($objects as $object) {
    echo $object['Name'];
}