Encontré una manera de cargar un archivo desde una URL en el depósito s3, pero ¿hay alguna forma de dirigirlo a una carpeta específica o crear una carpeta?
Lo hago funcionar para almacenar en la raíz de s3 usando el código a continuación
def save_image_s3(self, img_url, img_name): """Saves the image in img_url into S3 with the name img_name""" conn = boto.connect_s3(settings.AWS_ACCESS_KEY_ID, settings.AWS_SECRET_ACCESS_KEY) bucket = conn.get_bucket(settings.AWS_STORAGE_BUCKET_NAME) k = Key(bucket) k.key = img_name fp = StringIO.StringIO(urllib2.urlopen(img_url).read()) k.set_contents_from_file(fp) return img_nameNuevamente, esto lo guarda en el directorio raíz de mi depósito, pero no estoy seguro de cómo puedo dirigirlo para guardarlo en una carpeta existente o crear una nueva carpeta si la carpeta no existe.
Gracias por adelantado
Está muy cerca, puede configurar k.key en la "ruta" completa en el depósito a su objeto. Por ejemplo:
k.key = 'photos/%s' % img_name Esto lo guardará en lo que consideraría una "carpeta" llamada photos . No es necesario que primero se cree la carpeta, ya que las carpetas S3 en realidad no existen, pero están implícitas en la aparición de una o más / que aparecen dentro de las claves de objeto. No agregue / al principio.