Je suis à la configuration d'un projet Django qui ont été en utilisant le serveur de système de fichiers pour stocker les applications des fichiers statiques (STATIC_ROOT
) et de l'utilisateur des fichiers téléchargés (MEDIA_ROOT
).
J'ai besoin maintenant d'accueillir tout le contenu sur Amazon S3, j'ai donc créé un seau pour cela. À l'aide de django-storages
avec l' boto
backend de stockage, j'ai réussi à télécharger recueillies statique dans le compartiment S3:
MEDIA_ROOT = '/media/'
STATIC_ROOT = '/static/'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'KEY_ID...'
AWS_SECRET_ACCESS_KEY = 'ACCESS_KEY...'
AWS_STORAGE_BUCKET_NAME = 'bucket-name'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
Ensuite, j'ai eu un problème: l' MEDIA_ROOT
et STATIC_ROOT
ne sont pas utilisés dans le seau, de sorte que le seau de la racine contient à la fois les fichiers statiques et utilisateur de télécharger des chemins.
Alors je pourrais le définir:
S3_URL = 'http://s3.amazonaws.com/%s' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL + STATIC_ROOT
MEDIA_URL = 'S3_URL + MEDIA_ROOT
Et d'utiliser ces paramètres dans les modèles, mais il n'y a pas de distinction de statique/fichiers multimédias lors du stockage dans S3 avec django-storages
.
Comment cela peut être fait?
Merci!