es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tratando de descargar todos los archivos de imagen de una subcarpeta del cubo AWS s3 en un archivo en el IDE de Cloud9.

Encontré este código en línea pero no puedo cambiarlo para descargar las imágenes en una carpeta específica.

    import boto3
    import os
def download_all_objects_in_folder():
    s3_resource = boto3.resource('s3')
    my_bucket = s3_resource.Bucket('images')
    objects = my_bucket.objects.filter(Prefix='pets/cats/')
    for obj in objects:
        path, filename = os.path.split(obj.key)
        my_bucket.download_file(obj.key, filename)
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para descargar imágenes en una carpeta especificada, deberás modificar el comando “my_bucket.download_file”. En lugar de pasar solo el nombre de archivo como segundo argumento, debes pasar la ruta de la carpeta deseada y el nombre de archivo unidos por una barra diagonal. Aquí está el código modificado:

    import boto3
    import os
    
    def download_all_objects_in_folder():
        s3_resource = boto3.resource('s3')
        my_bucket = s3_resource.Bucket('images')
        objects = my_bucket.objects.filter(Prefix='pets/cats/')
        for obj in objects:
            path, filename = os.path.split(obj.key)
            folder = 'ruta/a/la/carpeta'
            full_path = os.path.join(folder, filename)
            my_bucket.download_file(obj.key, full_path)
    

    Reemplaza ‘ruta/a/la/carpeta’ con la ruta de la carpeta deseada donde deseas descargar las imágenes.

Comments are closed.