2015-07-15 4 views
1

Недавно я получил задание управлять данными, которые хранятся через веб-службу Amazone.Листинг объектов, отфильтрованных префиксом в AWS с PHP SDK

Согласно доку из Amazone я попытался следующий код, чтобы получить список всех объектов в пределах ведре и она отлично работает:

$aws = Aws::factory('/path/to/my/config.php'); 

$s3 = $aws->get('s3'); 

$it = $s3->getIterator('ListObjects', array (
     'Bucket' => 'myBucket', 
    ) 
); 

foreach($it as $o){ 
    echo $o['Key']."<br />"; 
} 

Но я должен перечислить все объекты только с определенным префиксом. Для достижения этой цели я добавил следующую строку ниже строк 6, показанный код:

 'prefix' => 'myPrefix/', 

(Фактический ключ файла я хочу, чтобы получить доступ есть (схема): myPrefix/subPrefix/subPrefix2/file.txt)

Но код продолжает возвращать все объекты в ковше. Я не нашел полезных подсказок в документе Amazon для моего вопроса.

Может ли кто-нибудь сказать мне (одному из) правильный синтаксис, чтобы перечислить все объекты данного префикса в PHP?

заранее спасибо за любую помощь

+1

Если у вас есть большое количество объектов, я бы не рекомендовал использовать этот подход. Отслеживать объекты, хранящиеся через некоторую базу данных, и искать эту базу данных. Вы можете использовать «S3 Уведомления» и «SNS» для отслеживания объектов, созданных в вашем ковше. – kixorz

+0

Спасибо за подсказку. Я обязательно проверю это. –

ответ

0

Согласно следующей теме ...

List objects in a specific folder on Amazon S3

... Вам нужно капитализируются индекс_идентификатор значения массива, который передается в качестве второго аргумент getIterator-функции:

'Р refix' => 'myPrefix /',

Смежные вопросы