Список всех файлов в каталоге S3 с помощью Zend Framework

Как я могу перечислить все файлы в каталоге Amazon S3 корзины в PHP (и, возможно, с помощью помощника из Zend Framework)?


person Maxim Zubarev    schedule 06.11.2011    source источник


Ответы (1)


См. Пример № 5:

http://framework.zend.com/manual/en/zend.service.amazon.s3.html

getObjectsByBucket ($ bucket) возвращает список ключей объекта, содержащихся в корзине.

$s3 = new Zend_Service_Amazon_S3($my_aws_key, $my_aws_secret_key);

$list = $s3->getObjectsByBucket("my-own-bucket");
foreach($list as $name) {
  echo "I have $name key:\n";
  $data = $s3->getObject("my-own-bucket/$name");
  echo "with data: $data\n";
}

Обновление:

«Папки» в amazon s3 - это префиксы, вы можете установить параметр:

prefix - Limits the response to keys which begin with the indicated prefix. You can use prefixes to separate a bucket into different sets of keys in a way similar to how a file system uses folders.

См. Строку # 293 в S3.php.

person Ashley    schedule 06.11.2011
comment
Я действительно видел это, но если у меня есть несколько тысяч каталогов в ведре, это как-то очень плохо для производительности действительно проходит через каждый каталог. Я хочу уже иметь что-то вроде s3- ›listFiles ('my-own-bucket / directory1 / directory2'); - person Maxim Zubarev; 07.11.2011
comment
@dotwired, вы можете указать, какую папку получить, используя параметры, см. обновленный ответ - person Ashley; 07.11.2011