Czy istnieje skuteczniejszy sposób wyświetlania plików z zasobnika w usłudze Amazon S3 i wyodrębniania danych meta dla każdego z tych plików? Używam pakietu AWS PHP SDK.Wydajny sposób na wyodrębnianie plików i metadanych z Amazon S3?
if ($paths = $s3->get_object_list('my-bucket')) {
foreach($paths AS $path) {
$meta = $s3->get_object_metadata('my-bucket', $path);
echo $path . ' was modified on ' . $meta['LastModified'] . '<br />';
}
}
W tej chwili trzeba uruchomić get_object_list() do listy wszystkich plików, a następnie get_object_metadata() dla każdego pliku, aby uzyskać jego meta danych.
Jeśli mam 100 plików w moim segmencie, wykonuje 101 połączeń, aby uzyskać te dane. Byłoby dobrze, gdyby można było to zrobić w jednym wywołaniu.
Np:
if ($paths = $s3->get_object_list('my-bucket')) {
foreach($paths AS $path) {
echo $path['FileName'] . ' was modified on ' . $path['LastModified'] . '<br />';
}
}
Użycie obiektów s3 do przechowywania "plików" przypomina użycie całej partycji 2Gb fs do przechowywania obrazu Zork. Umieść wszystkie swoje metadane w jednym obiekcie. Tak, 100 obiektów wymaga 100 transakcji. – starbolin