2013-08-29 16 views
5

Zawsze uważałem, że istnieje limit 1000 kluczy podczas wywoływania ListObjects w Amazon S3. Jednak właśnie zadzwoniłem i ciągnę za 1.080. Ale nawet ich docs mówią, że istnieje limit 1000.Czy Amazon S3 ma limit MaxKeys podczas wywoływania ListObjects?

Próbowałem ustawić ustawienie MaxKeys na 1000, ale nadal pobiera 1,080 wyników. Mój kod:

$iterator = $s3->getIterator('ListObjects', array(
    'Bucket' => 'BUCKETNAME', 
    'MaxKeys' => 1000 
)); 

Jest to jednak ciągnięcie foldery jako klucze. Ale na pewno nie mam ich 80.

dwa pytania:

  1. Czy mój kod nie tak?
  2. Czy Amazon podniósł 1000 kluczowych ograniczeń? Czy istnieje nowy limit?

Z góry dziękuję!

Odpowiedz

8

Limit interfejsu API S3 nie zmienił się, jest nadal ograniczony do maksymalnie 1000 kluczy/odpowiedzi.

W pakiecie PHP SDK v1 pojedyncze żądanie zwrócono do 1000 kluczy, a resztę zażądano, aby wykonać drugie żądanie za pomocą opcji .

Nowy pakiet SDK PHP (v2) ma koncepcję Iteratorów, który pozwala na uproszczenie procesu wykonywania wielu wielokrotnych żądań. Dzięki temu uzyskanie WSZYSTKICH obiektów jest znacznie łatwiejsze.

+1

Ah, jeszcze raz bardzo dziękuję @dcro. Czuję się teraz trochę głupio ... To dwa razy pomógł mi dzisiaj. Jestem ci winien piwo! Ale dam wam głosowanie :) –

+0

Tak, iteratory w SDK 2 upraszczają wiele prac przy pobieraniu wyników na stronach w sposób bardziej efektywny pod względem pamięci. –