En esta página se explica cómo enumerar los objetos almacenados en tus segmentos de Cloud Storage, que se ordenan en la lista lexicográficamente por nombre.
Antes de empezar
Para obtener los permisos que necesitas para enumerar objetos, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Lector de objetos de Storage (roles/storage.objectViewer
) en el segmento que contiene los objetos que quieres enumerar. Si quiere mostrar los objetos de las carpetas gestionadas, puede conceder el permiso roles/storage.objectViewer
en la carpeta gestionada que contenga los objetos que quiera ver en lugar de en el contenedor.
Si tienes previsto usar la Google Cloud consola para realizar las tareas de esta página, pide a tu administrador que te conceda el rol básico Lector (roles/viewer
) además del rol Visor de objetos de Storage (roles/storage.objectViewer
).
Estos roles contienen los permisos necesarios para enumerar objetos. Para ver los permisos exactos que se necesitan, despliega la sección Permisos obligatorios:
Permisos obligatorios
storage.objects.list
storage.buckets.list
- Este permiso solo es necesario si quieres usar la Google Cloud consola para realizar las tareas de esta página.
También puedes obtener estos permisos con otros roles predefinidos o roles personalizados.
Para obtener información sobre cómo conceder roles a los contenedores, consulta Usar IAM con contenedores.
Mostrar los objetos de un segmento
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haga clic en el nombre del segmento cuyo contenido quiera ver.
Línea de comandos
Usa el comando gcloud storage ls
:
gcloud storage ls gs://BUCKET_NAME
Donde:
BUCKET_NAME
es el nombre del segmento que contiene los objetos que quieres enumerar. Por ejemplo,my-bucket
.
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se enumeran todos los objetos de un segmento:
En el siguiente ejemplo se enumeran los objetos con un prefijo determinado:
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se enumeran todos los objetos de un segmento:
En el siguiente ejemplo se enumeran los objetos con un prefijo determinado:
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se enumeran todos los objetos de un segmento:
En el siguiente ejemplo se enumeran los objetos con un prefijo determinado:
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se enumeran todos los objetos de un segmento:
En el siguiente ejemplo se enumeran los objetos con un prefijo determinado:
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se enumeran todos los objetos de un segmento:
En el siguiente ejemplo se enumeran los objetos con un prefijo determinado:
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se enumeran todos los objetos de un segmento:
En el siguiente ejemplo se enumeran los objetos con un prefijo determinado:
Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se enumeran todos los objetos de un segmento:
En el siguiente ejemplo se enumeran los objetos con un prefijo determinado:
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se enumeran todos los objetos de un segmento:
En el siguiente ejemplo se enumeran los objetos con un prefijo determinado:
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API JSON con una solicitud para enumerar objetos:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o"
Donde
BUCKET_NAME
es el nombre del contenedor cuyos objetos quieres enumerar. Por ejemplo,my-bucket
.
API XML
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API XML con una solicitud deGET
contenedor:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?list-type=2"
Donde
BUCKET_NAME
es el nombre del contenedor cuyos objetos quieres enumerar. Por ejemplo,my-bucket
.Puede usar un parámetro de cadena de consulta
prefix=PREFIX
para limitar los resultados a los objetos que tengan el prefijo especificado.
Mostrar los objetos de una carpeta
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haz clic en el nombre del segmento que contiene la carpeta.
En la pestaña Objetos de la página Detalles del segmento, haga clic en el nombre de la carpeta cuyo contenido quiera ver.
Línea de comandos
Usa el comando gcloud storage ls
para enumerar los objetos de una carpeta:
gcloud storage ls gs://BUCKET_NAME/FOLDER_NAME
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la carpeta. Por ejemplo,my-bucket
.FOLDER_NAME
es el nombre de la carpeta que contiene los objetos que quieres enumerar. Por ejemplo,my-folder
.
APIs REST
API JSON
Para enumerar los objetos de una carpeta, usa una solicitud de lista de objetos
con los parámetros prefix
y delimiter
. Cuando se configura el parámetro prefix
, la operación de lista se limita a devolver solo los objetos y las carpetas que se encuentren en el prefijo. Cuando se define el parámetro delimiter
, la lista prefixes[]
de la respuesta se rellena con los nombres de las carpetas que tienen el prefijo especificado.
Por ejemplo:
Para enumerar todos los objetos de la carpeta
image/
del contenedormy-bucket
, usa la siguiente URL:"https://storage.googleapis.com/storage/v1/b/my-bucket/o?prefix=image&delimiter=/"
.Esto podría devolver los objetos
my-bucket/image/cat.jpeg
ymy-bucket/image/dog.jpeg
.Para incluir objetos de subcarpetas en
image/
, elimina el parámetrodelimiter
:"https://storage.googleapis.com/storage/v1/b/my-bucket/o?prefix=image"
.Esto podría devolver los objetos
my-bucket/image/cat.jpeg
,my-bucket/image/dog.jpeg
ymy-bucket/image/dog/shiba.jpeg
.
Para usar comodines en la solicitud de objetos de lista y buscar objetos por expresión glob, usa el parámetro matchGlob
. Por ejemplo, matchGlob=**.jpeg
coincide con todos los objetos que terminan en .jpeg
. Cuando utilice matchGlob
, debe asignar el valor /
a delimiter
.
Por ejemplo, usa la siguiente URL para que coincida con todos los objetos de la carpeta image
que terminen en .jpeg
:
"https://storage.googleapis.com/storage/v1/b/my-bucket/o?prefix=image&delimiter=/&matchGlob=**.jpeg"
Para obtener más información sobre cómo usar parámetros para filtrar objetos, consulta la documentación de referencia de la API JSON de la lista de objetos.
Caso práctico
Usar prefix
para mostrar el contenido de una carpeta puede ser útil cuando solo tienes permiso para mostrar objetos en la carpeta, pero no en todo el segmento. Por ejemplo, supongamos que tienes el rol de gestión de identidades y accesos Lector de objetos de Storage (roles/storage.objectViewer
) para la carpeta gestionada my-bucket/my-managed-folder-a/
, pero no para la carpeta gestionada my-bucket/my-managed-folder-b/
. Para devolver solo los objetos de my-managed-folder-a
, puedes especificar prefix=my-managed-folder-a/
.
Filtrar objetos
Cuando se enumeran objetos, se pueden usar prefijos o sufijos en la solicitud de lista para filtrar los objetos por nombre.
Consola
Consulte la sección sobre filtrado y ordenación para obtener información sobre cómo filtrar y ordenar objetos en cubos o carpetas.
Línea de comandos
Puedes usar comodines en el comando gcloud storage ls
para filtrar objetos por prefijo o sufijo. Por ejemplo, el siguiente comando solo muestra los objetos del contenedor my-bucket
cuyo nombre empieza por image
y termina por .png
:
gcloud storage ls gs://my-bucket/image*.png
Si la solicitud se realiza correctamente, la respuesta será similar a la siguiente:
gs://my-bucket/image.png gs://my-bucket/image-dog.png gs://my-bucket/image-cat.png ...
Puedes usar comodines de doble asterisco para buscar coincidencias con cero o más niveles de carpetas en una ruta. Por ejemplo, el siguiente comando solo muestra los objetos cuyo nombre termina en .jpeg
en cualquier carpeta o subcarpeta del segmento my-bucket
:
gcloud storage ls gs://my-bucket/**/*.jpeg
Si la solicitud se realiza correctamente, la respuesta será similar a la siguiente:
gs://my-bucket/puppy.jpeg gs://my-bucket/pug.jpeg gs://my-bucket/pets/dog.jpeg ...
APIs REST
Consulta Mostrar los objetos de las carpetas para obtener información sobre cómo filtrar objetos por prefijo de nombre de carpeta u objeto.
Consideraciones sobre el rendimiento al enumerar objetos
La estructura subyacente de los segmentos con el espacio de nombres jerárquico habilitado influye en el rendimiento de la operación de enumeración de objetos en comparación con los segmentos de espacio de nombres plano. Para obtener más información, consulta el artículo Optimizar el rendimiento de los contenedores con el espacio de nombres jerárquico habilitado.
Siguientes pasos
- Descarga un objeto de tu contenedor.
- Ver y editar metadatos de objetos
- Elimina objetos de tu segmento.
- Consulta cómo paginar los resultados.