2

我想从我的 PHP 服务器获取我的 Amazon S3 存储桶中的所有文件名的列表。Amazon PHP sdk 有可能吗?如果没有,还有其他方法吗?谢谢!

4

2 回答 2

4

使用官方 AWS SDK for PHP v2,您可以执行以下操作:

<?php

require 'vendor/autoload.php';

use Aws\Common\Aws;

// Instantiate an S3 client
$s3 = Aws::factory('/path/to/config.php')->get('s3');

$objects = $s3->getIterator('ListObjects', array(
    'Bucket' => $bucket
));

foreach ($objects as $object) {
    echo $bucket['Name'] . '/' . $object['Key'] . PHP_EOL;
}
于 2013-02-03T16:47:00.787 回答
1
  1. 它对我来说很好,只是MaxKeys被忽略了。
  2. 使用上面的方法和下面的方法有区别吗?虽然我无法在$result.

    use Aws\Common\Aws;
    use Aws\S3\S3Client;
    
    // Prepare S3 Client to speak with AWS
    $s3client;
    $s3client = S3Client::factory(array(
        'key' => '',
        'secret' => '',
        'region' => Region::US_EAST_1
    ));
    
    // List objects from a bucket
    $result = $s3client->listObjects(array(
        'Bucket' => $aws_bucket,
        'MaxKeys' => 25,
        'Marker' => 'docs/'
    ));
    
    $objects = $result->getIterator();
    
    foreach ($objects as $wo)
    {
        // Prints junk
        echo $wo['Key'] . ' - ' . $wo['Size'] . PHP_EOL;
    }
    
于 2013-04-17T11:31:34.787 回答