Estoy usando el código mencionado a continuación para obtener una lista de todos los nombres de archivos de s3 bucket. Tengo dos cubos en s3. Para uno de los códigos debajo del depósito, se devuelven todos los nombres de los archivos (más de 1000), pero el mismo código devuelve solo 1000 nombres de archivo para otro depósito. Simplemente no entiendo lo que está pasando. ¿Por qué el mismo código se ejecuta para un depósito y no para otro?Amazon s3 devuelve solo 1000 entradas para una categoría y todas para otra categoría (usando Java SDK)?
También mi cubo tiene estructura de jerarquía folder/filename.jpg.
ObjectListing objects = s3.listObjects("bucket.new.test");
do {
for (S3ObjectSummary objectSummary : objects.getObjectSummaries()) {
String key = objectSummary.getKey();
System.out.println(key);
}
objects = s3.listNextBatchOfObjects(objects);
} while (objects.isTruncated());
Pero, ¿cuál es la causa raíz? ¿Por qué el mismo código había funcionado para un caso y no para otro? – morsik
Esa es una buena pregunta para la que no tengo la respuesta. Solo tomé el código de @ Abhishek y lo "arreglé". Mi única conjetura es que es una propiedad del cubo. – oferei
Tengo el mismo problema con la versión "vieja" de la API Java s3. Amazon presentó "v2", que debería resolver el problema: http://docs.aws.amazon.com/AmazonS3/latest/dev/ListingObjectKeysUsingJava.html Nota, utiliza 's3client.listObjectsV2' y' req.setContinuationToken (result.getNextContinuationToken()) '. El último debe realizar llamadas REST GET subyacentes por separado a s3 (como single get, devuelve hasta 1000 claves por defecto, http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) – morsik