Estoy configurando mi proyecto Django para usar cubos S3 para almacenar archivos estáticos y multimedia, tanto para configuraciones locales como de producción.
El árbol de mi proyecto es el siguiente:
src/ blog/ settings/ __init__ local.py production.py s3utils.py [..] [..] Mi local.py :
access_key = "xx" secret_key = "yy" AWS_ACCESS_KEY_ID = access_key AWS_SECRET_ACCESS_KEY = secret_key AWS_STORAGE_BUCKET_NAME = 'zz' STATICFILES_STORAGE = 'blog.s3utils.StaticRootS3BotoStorage' DEFAULT_FILE_STORAGE = 'blog.s3utils.MediaRootS3BotoStorage' S3DIRECT_REGION = 'us-west-2' S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME MEDIA_URL = 'http://%s.s3.amazonaws.com/media/' % AWS_STORAGE_BUCKET_NAME MEDIA_ROOT = MEDIA_URL STATIC_URL = S3_URL + "/static/" ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/' import datetime two_months = datetime.timedelta(days=61) date_two_months_later = datetime.date.today() + two_months expires = date_two_months_later.strftime("%A, %d %B %Y 20:00:00 GMT") AWS_HEADERS = { 'Expires': expires, 'Cache-Control': 'max-age=%d' % (int(two_months.total_seconds()), ), } mi s3utils.py :
from storages.backends.s3boto import S3BotoStorage StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static') MediaRootS3BotoStorage = lambda: S3BotoStorage(location='media')Cuando corro:
python manage.py collectstaticsolo los archivos estáticos de administración (django) se copian en mi depósito s3.
Pensé que el problema era que configuré mal el permiso de mi usuario de IAM, pero en realidad tengo los permisos para copiar los archivos 'admin/' en el depósito s3.
Gracias por cualquier ayuda que pueda proporcionar.
Agregue STATICFILES_DIRS a su configuración.
STATICFILES_DIRS = [ "/path/to/your/static", ]https://docs.djangoproject.com/en/1.10/ref/settings/#std:setting-STATICFILES_DIRS