Ya hemos visto en un anterior ejemplo como podemos subir un fichero a Amazon S3 con Python. En este caso vamos a ver cómo podemos Listar contenido de un bucket Amazon S3 con Python. Lo primero que tenemos que recordar es que un bucket es un contenedor, una especie de directorio. Los bucket almacenarán todas las claves de los ficheros que hayamos subido a Amazon S3.
Todo lo necesario para empezar a trabajar con Python, Amazon S3 y tinys3 lo tienes en el ejemplo de subir un fichero a Amazon S3 con Python.
El ejemplo de listar contenido de un bucket Amazon S3 con Python lo vamos a realizar con la librería tinys3 que podéis encontrar en https://github.com/smore-inc/tinys3
Así deberemos de instalar tinys3.
Ahora vamos a importar la librería en nuestro fichero y definir las claves de Amazon S3 que vamos a utilizar.
import tinys3
S3_ACCESS_KEY = 'BAKIBAKI678H67HGA'
S3_SECRET_KEY = '+vpOpILD+E9872AialendX0Ui123CKCKCKw'
Ahora nos conectamos al Amazon S3 mediante la clase Connection
conn = tinys3.Connection(S3_ACCESS_KEY,S3_SECRET_KEY,'la-prueba',endpoint='s3-eu-west-1.amazonaws.com')
Vemos que esta clase recibe cuatro parámetros:
- Clave de Acceso de Amazon S3
- Clave Secreta de Amazon S3
- El bucket a utilizar. En este caso lo hemos llamado ‘la-prueba’
- El endpoint o región de Amazón S3 que utilizamos
Lo siguiente será utilizar el método .list()
para obtener todas las claves de un bucket.
Si queremos que sea de la raíz de un bucket escribiremos:
lista = conn.list('')
Y si queremos que sea de un directorio en concreto:
lista = conn.list('/directorio')
Ahora tenemos la información del bucket en un diccionario con la metainformación. En concreto la clave ‘key’ nos dará la información de los ficheros. Así recorremos todo el diccionario mediante un bucle:
for fichero in lista:
print fichero['key']
Y ya habremos conseguido listar contenido de un bucket Amazon S3 con Python.