Listar objetos en un Bucket
Listar todos los objetos por paginación
Este método del SDK te permitirá obtener todos los objetos presentes en un bucket particular por paginación. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente.
En cada llamada, se devolverá un número limitado de objetos, y la siguiente llamada se iniciará solo si se devuelve un token de continuación.
Parámetros utilizados
| Nombre del parámetro | Tipo de dato | Definición |
|---|---|---|
| maxKey | String | Un parámetro obligatorio. Contendrá el límite máximo de objetos que se pueden listar por paginación. |
| nextToken | String | Un parámetro obligatorio. Contendrá el token para obtener el siguiente conjunto de objetos. |
| prefix | String | Un parámetro opcional. Para listar objetos que coincidan con el valor del prefijo. |
| orderBy | String | Un parámetro opcional. Para listar objetos en orden ascendente o descendente. Valor predeterminado: asc |
La respuesta que obtendremos contendrá las siguientes propiedades del bucket, que se almacenarán en moreOptions:
- key count: Contendrá el valor del número de objetos que se están devolviendo
- max keys: El límite máximo de objetos que se pueden devolver
- Truncated: Contendrá el estado para notificar si un bucket está truncado o no.
- contents: Lista de detalles de objetos
- continuation_token: Si enviaste un continuation_token en la solicitud, se mostrará en la respuesta.
- next_continuation_token: Si la respuesta fue truncada, el valor de esta clave debe pasarse como continuation_token al mismo método para recuperar el siguiente conjunto de objetos.
Con cada iteración, listaremos el número maxKey de objetos y verificaremos si se ha creado nextToken. Usando nextToken continuaremos la iteración hasta que se hayan listado todos los objetos.
Asegúrate de que los siguientes paquetes estén importados:
import com.zc.component.stratus.ZCBucket;
import com.zc.component.stratus.ZCStratus;
import com.zc.component.stratus.beans.ZCListObjectOptions;
import com.zc.component.stratus.beans.ZCPagedObjectResponse;
import com.zc.component.stratus.ZCObject;
String nextToken = null;
String maxKey = "10";
String prefix = "Sam";
do {
ZCListObjectOptions options = new ZCListObjectOptions();
options.setMaxKey(maxKey); // Por defecto: 1000
options.setContinuationToken(nextToken); // Obtener la siguiente página
options.setFolderListing("true"); // Por defecto: false
options.setOrderBy("desc"); // Por defecto: "asc"
options.setPrefix(prefix); // Opcional
ZCPagedObjectResponse res = bucket.listPagedObjects(options);
System.out.println("Object count: " + res.getKeyCount());
System.out.println("Max key: " + res.getMaxKey());
System.out.println("Is truncated: " + res.getTruncated());
for (ZCObject key : res.getContents()) {
System.out.println("Object name: " + key.getKey());
System.out.println("Content type: " + key.getContentType());
System.out.println("Size: " + key.getSize());
System.out.println("Metadata: " + key.getMetaData());
System.out.println("Version ID: " + key.getVersionId());
System.out.println("ETag: " + key.getEtag());
System.out.println("Object type: " + key.getKeyType());
System.out.println("Cached URL: " + key.getCachedUrl());
}
nextToken = res.getNextToken();
} while (nextToken != null);
Listar objetos mediante iteración
Usando este método del SDK, puedes obtener todos los objetos presentes en un bucket en una sola llamada API, usando la técnica de iteración. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente.
Asegúrate de que los siguientes paquetes estén importados:
import java.util.Iterator;
import com.zc.component.stratus.ZCObject;
import com.zc.component.stratus.beans.ZCListObjectOptions;
import java.util.List;
ZCListObjectOptions options = new ZCListObjectOptions();
options.setFolderListing("true"); // Por defecto: false
options.setMaxKey("2"); // Por defecto: 1000
options.setOrderBy("desc"); // Por defecto: "asc"
// Obtener lista de objetos iterable
Iterable<List<ZCObject>> paginationIterable = bucket.listIterableObjects(options);
Iterator<List<ZCObject>> iterator = paginationIterable.iterator();
while (iterator.hasNext()) {
List<lZCObject> objectList = iterator.next();
for (ZCObject obj : objectList) {
System.out.println(obj.getKey());
}
}
Última actualización 2026-03-30 13:40:30 +0530 IST
Yes
No
Send your feedback to us