Borrar un directorio de S3 con Python
En un anterior ejemplo vimos cómo podíamos borrar un fichero de S3 con Python, en este caso vamos a realizar algo parecido que es borrar un directorio de S3 con Python.
Si bien, en el caso del borrado de ficheros contábamos con el método .delete() la librería TinyS3 no nos ofrece un método que permita el borrado de un directorio, así que tendremos que implementarlo nosotros mismos.
Borrar contenido del directorio
Sección titulada «Borrar contenido del directorio»La idea de borrar un fichero de S3 con Python lo que busca es borrar todos y cada uno de los ficheros que haya en el directorio, para, al final, borrar el directorio en si mismo. Ya que si intentamos borrar un directorio que tenga contenido nos va a dar error.
Lo primero para poder borrar un directorio de S3 con Python será conectarnos al sistema de Amazon S3 mediante la clave privada y secreto.
conn = tinys3.Connection(ACCESS_KEY,SECRET_KEY,tls=True)Listar y eliminar ficheros
Sección titulada «Listar y eliminar ficheros»Lo que vamos a hacer es listar el directorio que queremos borrar. Para ello vamos a utilizar el método .list()
lista = conn.list(DIRECTORIO,BUCKET)Vemos que no solo hay que indicar el nombre del directorio a listar, si no que además hay que indicar el bucket que lo contiene.
Ahora empezaremos a recorrer los ficheros que tiene el directorio.
for fichero in lista: conn.delete(fichero['key'])Por cada uno de los ficheros vamos a ejecutar el método .delete() que lo que va a hacer es borrar dicho fichero. Es importante saber que tenemos que utilizar la metainformación de la clave para pasarla como parámetro al método .delete()
Eliminar el directorio
Sección titulada «Eliminar el directorio»Una vez que hayamos borrado todos los ficheros del directorio solo nos quedará borrar el directorio, ya vacío, mediante el mismo método.
conn.delete(DIRECTORIO)De esta forma ya habremos conseguido borrar un directorio de S3 con Python.
Descarga el código de Borrar un directorio de S3 con Python
Aprende a borrar un directorio de S3 con Python de forma sencilla y efectiva, eliminando todos los ficheros antes de eliminar el directorio vacío.