Sube imágenes a Amazon S3 usando Django

Actualmente estoy cambiando el tamaño de las imágenes sobre la marcha cuando un usuario carga una imagen. La imagen original se almacena en Amazon S3 en un cubo llamado djangobucket. Dentro de este cubo, contiene miles de carpetas.

Cada carpeta lleva el nombre del usuario. No tengo que preocuparme por la creación del grupo o la creación de carpetas, ya que todo esto se maneja desde el lado del cliente.

Aquí hay un diagrama:

djangobucket  ------------> bob ---------> picture1.jpg
                                           picture2.jpg
                                           picture3.jpg
                                           picture4.jpg

Como puedes ver, Bob tiene muchas fotos. Una vez que un usuario carga una imagen en S3, la descargo a través de Django a través de una URL, en este caso sería:http://s3.amazonaws.com/djangobucket/bob/picture1.jpg

Descargo la imagen, realizo el procesamiento de la imagen y guardo la imagen procesada en mi servidor de aplicaciones django.

Me gustaría enviar esta imagen procesada de nuevo a la carpeta de Bob para que pueda ser alcanzada públicamente enhttp://s3.amazonaws.com/djangobucket/bob/picture1_processed.jpg

El cliente ya tiene acceso a la clave de amazon y la clave secreta para que pueda subir fotos a este grupo. Todos los usuarios en el servicio utilizan las mismas claves. Yo también usaré las mismas llaves.

He oído hablar de algo llamado Boto, pero involucra la creación de Bucket y no estoy seguro de cómo hacer solo la parte de carga. Solo me preocupa subir la imagen a la carpeta de usuario adecuada.

He estado investigando esto durante horas, así que he recurrido a los expertos aquí.

Aquí está mi código, solo para que pueda comprender mejor lo que estoy haciendo.

user = 'bob'

url = 'http://s3.amazonaws.com/djangobucket/bob/picture1.jpg'
filename = url.split('/')[-1].split('.')[0]

download_photo = urllib.urlretrieve(url, "/home/ubuntu/Desktop/Resized_Images/%s.jpg" % (filename))
downloaded_photo = Image.open("/home/ubuntu/Desktop/Resized_Images/%s.jpg" % (filename))

resized_photo = downloaded_photo.resize((300, 300), Image.ANTIALIAS)
new_filename = filename + "_processed"

resized_photo.save("/home/ubuntu/Desktop/Resized_Images/%s.jpg" % (new_filename)) 

Me gustaría enviar la foto redimensionada guardada en / home / ubuntu / Desktop / Resized_Images / a la carpeta de Bob en djangobucket en Amazon S3 y hacerla pública.

Gracias por tu ayuda.

EDITAR Encontré este enlace:http://www.laurentluce.com/posts/upload-and-download-files-tofrom-amazon-s3-using-pythondjango/

No es exactamente cómo usarlo para mi caso, pero creo que estoy en el camino correcto.

Respuestas a la pregunta(1)

Su respuesta a la pregunta