Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

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 en particular mediante paginación. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente.

Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección
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
max_keys String Un parámetro obligatorio. Contendrá el límite máximo de objetos que se pueden listar por paginación.
continuation_token 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.
order_by String Un parámetro opcional. Para listar objetos en orden ascendente o descendente. Valor predeterminado: asc
folder_listing 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 max_keys. 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_key: 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 * next_token: Si la respuesta fue truncada, el valor de esta clave debe pasarse como next_token al mismo método para recuperar el siguiente conjunto de objetos. Con cada iteración, listaremos el número de objetos max_keys y verificaremos si se ha creado next_token. Usando next_token continuaremos la iteración hasta que todos los objetos hayan sido listados.
copy
# Definir una función recursiva para listar objetos del bucket usando paginación
def list_my_paged_objects(max_keys=None, prefix=None, next_token=None):
    # Obtener una lista paginada de objetos del bucket con las opciones especificadas
    data = bucket.list_paged_objects(
        max_keys,         # Número máximo de objetos a obtener en esta llamada
        prefix,           # Filtrar objetos que comienzan con este prefijo
        next_token,       # Token de continuación para obtener la siguiente página de resultados
        folder_listing=True,  # Listar objetos en una estructura tipo carpeta
        order_by='desc'       # Ordenar objetos en orden descendente (más recientes primero)
    )
    # Imprimir la lista de objetos obtenidos
    print(data['contents'])
    # Verificar si hay más objetos disponibles (la paginación aún no está completa)
    if data['truncated']:
        # Llamar recursivamente a la función para obtener la siguiente página de objetos
        list_my_paged_objects(max_keys, prefix, data['next_continuation_token'])
#Iniciar la lista de objetos con un tamaño de página de 2
list_my_paged_objects(2, 'sam')

Respuesta de ejemplo

copy
{
  "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"
    }
  ]
}

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, utilizando la técnica de iteración. La referencia de Bucket utilizada en el siguiente fragmento de código es la instancia del componente.

Info: Para utilizar este método del SDK, necesitas inicializarlo con el alcance Admin. Puedes obtener más información sobre este requisito en esta sección
copy
# Listar objetos del bucket usando paginación iterable con las opciones especificadas
objects = bucket.list_iterable_objects(
    max_keys=5,           # Número máximo de objetos a obtener por lote (predeterminado es 1000)
    prefix='sam',         # Filtrar objetos que comienzan con este prefijo
    folder_listing=True,  # Listar objetos en una estructura tipo carpeta (predeterminado es False)
    order_by='desc'       # Ordenar objetos en orden descendente (predeterminado es 'asc')
)
#Iterar e imprimir cada clave de objeto
for key in objects:
    print(key)

Respuesta de ejemplo

copy
{
 "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-30 13:40:30 +0530 IST