【发布时间】:2013-01-18 00:01:00
【问题描述】:
我想从我的 PHP 服务器获取我的 Amazon S3 存储桶中的所有文件名的列表。 Amazon PHP sdk 有可能吗?如果没有,还有其他方法吗?谢谢!
【问题讨论】:
标签: php json amazon-web-services amazon-s3
我想从我的 PHP 服务器获取我的 Amazon S3 存储桶中的所有文件名的列表。 Amazon PHP sdk 有可能吗?如果没有,还有其他方法吗?谢谢!
【问题讨论】:
标签: php json amazon-web-services amazon-s3
使用official 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;
}
【讨论】:
MaxKeys 被忽略之外,它对我来说很好。使用上面的方法和下面的方法有区别吗?虽然我无法访问$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;
}
【讨论】: