Listar objetos en un Bucket
List all Objects by Pagination
Este método del SDK te permitirá obtener una lista de todos los objetos presentes en un bucket particular mediante paginación. La referencia de Bucket utilizada en el fragmento de código a continuación es la instancia del componente.
Para 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 |
| folderListing | String | Un parámetro opcional. Para elegir listar solo los objetos del nivel raíz en el bucket o listar todos los objetos presentes en todas las rutas del bucket. Valor predeterminado: false Por ejemplo, si estableces el valor como true; solo se listarán los objetos del nivel raíz. Si estableces el valor como false; se listarán todos los objetos presentes en todas las rutas del bucket |
En el siguiente método del SDK, se establece un valor máximo de paginación usando maxKey. Usando prefix, puedes listar objetos que solo coincidan con el prefix.
La respuesta que obtenemos 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 de objetos maxKey y verificaremos si se ha creado nextToken. Usando nextToken continuaremos la iteración hasta que todos los objetos hayan sido listados.
async function listMyPaginatedObjects(maxKeys = null, prefix = null, nextToken = null) {
const options = {
// Número máximo de claves a devolver en una llamada
maxKeys,
// Token para obtener la siguiente página de objetos
continuationToken: nextToken,
// Orden en que se listan los objetos: 'asc' o 'desc'
// orderBy: 'desc',
// Si listar objetos en una estructura tipo carpeta (true) o estructura plana (false)
// folderListing: 'true',
// Solo listar objetos con este prefijo
prefix
};
// Obtener una página de objetos
const objects = await bucket.listPagedObjects(options);
console.log("response:", objects.contents);
// Si hay más objetos disponibles, obtener recursivamente el siguiente conjunto
if (objects.truncated) {
listMyPaginatedObjects(maxKeys, prefix, objects.next_continuation_token);
}
}
// Llamada inicial para listar objetos con un máximo de 2 claves por página y prefijo "sam"
await listMyPaginatedObjects(5, "sam");
Respuesta de ejemplo
{
"prefix": "sam",
"key_count": "5",
"max_keys": "5",
"truncated": "True",
"next_continuation_token": "47VrqTzR9ukMF9gr8YcziVVzdRP5GCjq1NfM5fMBpMfvw5qcXFRSueuqCTRUCzNd9dHfquXHi2afDanLH6MbyJo6",
"contents": [
{
"key_type": "file",
"key": "sam1s2ww.mp4",
"size": "427160684",
"content_type": "video/mp4",
"etag": "78c2b173b56cd944e9c79abd601f6073",
"last_modified": "May 21, 2024 01:00 PM"
},
{
"key_type": "file",
"key": "samdm.txt",
"size": "23",
"content_type": "text/plain; charset=utf-8",
"etag": "c0122754f465e42eb97b5af174663c29",
"last_modified": "May 14, 2024 01:30 PM"
},
{
"key_type": "file",
"key": "samplvbse1.json",
"size": "8",
"content_type": "application/json",
"etag": "499e7dbaee453352a9c17407a676dbda",
"last_modified": "May 13, 2024 10:05 AM"
},
{
"key_type": "file",
"key": "samplse1.json",
"size": "8",
"content_type": "application/json",
"etag": "499e7dbaee453352a9c17407a676dbda",
"last_modified": "May 13, 2024 09:20 AM"
},
{
"key_type": "file",
"key": "sampjkhdldbed.mp4",
"size": "0",
"content_type": "video/mp4",
"etag": "d41d8cd98f00b204e9800998ecf8427e",
"last_modified": "May 12, 2024 10:54 PM"
}
]
}
List Objects Through Iteration
Usando este método del SDK, puedes listar todos los objetos presentes en un bucket en una sola llamada API, usando la técnica de iteración. Usando la variable maxKey, puedes acceder al número requerido de objetos.
const options = {
// Número máximo de objetos devueltos por solicitud
maxKeys: 5,
// Orden en que se listan los objetos: 'asc' o 'desc'
// orderBy: 'desc',
// Si listar objetos en una estructura tipo carpeta (true) o estructura plana (false)
// folderListing: 'true',
// Solo listar objetos que comiencen con el prefijo especificado
prefix: 's'
};
// Listar archivos iterables del bucket
const files = bucket.listIterableObjects(options);
for await (const file of files) {
console.log('file:', file);
}
Respuesta de ejemplo
{
"key_type": "file",
"key": "ssdgs.mp4",
"size": "3145728",
"content_type": "video/mp4",
"etag": "9685b8d5b8b719274bac854b897d95ec",
"last_modified": "May 21, 2024 03:49 PM"
}
{
"key_type": "file",
"key": "Sasss.mp4",
"size": "2674",
"content_type": "video/mp4",
"etag": "24c1122087e9be930ff1e957e83f5224",
"last_modified": "May 21, 2024 02:55 PM"
}
{
"key_type": "file",
"key": "Samfplessss.mp4",
"size": "2674",
"content_type": "video/mp4",
"etag": "24c1122087e9be930ff1e957e83f5224",
"last_modified": "May 21, 2024 02:52 PM"
}
{
"key_type": "file",
"key": "demo.mp4",
"size": "3400",
"content_type": "video/mp4",
"etag": "24e957e83f5224c1122087e9be930ff1",
"last_modified": "May 21, 2024 02:52 PM"
}
{
"key_type": "file",
"key": "performance.mp4",
"size": "1454",
"content_type": "video/mp4",
"etag": "087e9be930ff124c1122e957e83f5224",
"last_modified": "May 21, 2024 02:52 PM"
}
Última actualización 2026-03-24 17:38:39 +0530 IST
Yes
No
Send your feedback to us