En settings.py
tengo:Señalando a múltiples cubos S3 en s3boto
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'xxxxxxxxxxxxx'
AWS_SECRET_ACCESS_KEY = 'xxxxxxxxxxxxx'
AWS_STORAGE_BUCKET_NAME = 'static.mysite.com'
Esto está apuntando a mi S3 cubo static.mysite.com
y funciona bien cuando lo haga manage.py collectstatic
, que cargue todos los archivos estáticos a mi cubo. Sin embargo, tengo otro cubo que utilizo para diferentes propósitos y me gustaría usar en ciertas áreas del sitio web, por ejemplo, si tengo un modelo como este:
class Image(models.Model):
myobject = models.ImageField(upload_to='my/folder')
Ahora, cuando Image.save()
se invoca, éste seguirá cargue el archivo en el depósito S3 en AWS_STORAGE_BUCKET_NAME
; sin embargo, quiero que este Image.save()
apunte a otro cubo S3. Cualquier limpia forma de hacer esto? No quiero cambiar settings.py
en tiempo de ejecución ni implementar ninguna práctica que viole los principios clave de django, es decir, que tenga un almacenamiento de backend fácil de cambiar conectable.
¡Agradable! ¿Dónde recomiendas colocar esta clase? – abstractpaper
En algún lugar de su proyecto. Normalmente tengo una aplicación separada donde guardo todas las cosas específicas del proyecto. –
aplicación central es, muchas gracias. – abstractpaper