Merci à tous les deux pour répondre.
J'ai réussi à résoudre ce problème. Pour être clair, je veux utiliser le même compartiment dans S3 pour servir mes fichiers statiques et mes fichiers multimédias pour le site de Wagtail.
Nous utilisons des conteneurs docker avec python DE: 2,7
- Bergeronnette == 1.9
- django-== 1.5.2
entrepôts
- boto3 == 1.4.4
custom_storages.py
from django.conf import settings
from storages.backends.s3boto3 import S3Boto3Storage
class StaticStorage(S3Boto3Storage):
location = settings.STATICFILES_LOCATION
class MediaStorage(S3Boto3Storage):
location = settings.MEDIAFILES_LOCATION
fichier
paramètres
STATICFILES_LOCATION = 'static'
MEDIAFILES_LOCATION = 'media'
STATICFILES_STORAGE = 'pcstudents.custom_storages.StaticStorage'
DEFAULT_FILE_STORAGE = 'pcstudents.custom_storages.MediaStorage'
COMPRESS_STORAGE = STATICFILES_STORAGE
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
AWS_S3_REGION_NAME = 'region'
AWS_S3_SIGNATURE_VERSION = 's3v4'
AWS_QUERYSTRING_AUTH = False
AWS_STORAGE_BUCKET_NAME = 'bucketname'
AWS_ACCESS_KEY_ID = 'secrets'
AWS_SECRET_ACCESS_KEY = 'moresecrets'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_PRELOAD_METADATA = True
STATIC_URL = "https://%s/" % AWS_S3_CUSTOM_DOMAIN
MEDIA_URL = "https://%s/media/" % AWS_S3_CUSTOM_DOMAIN
COMPRESS_ROOT = ''
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'compressor.finders.CompressorFinder',
]
STATICFILES_DIRS = [
'/code/static',
'/usr/local/lib/python2.7/site-packages/wagtail/wagtailadmin/static/wagtailadmin',
]
Avec cette configuration, je me retrouve avec un compartiment S3, avec deux dossiers, statique et multimédia.
Je peux collectertatic dans le dossier statique S3 et télécharger et télécharger depuis/vers le dossier multimédia.
Si quelqu'un peut voir un moyen d'améliorer cela, je suis tout ouïe, mais cela fonctionne.
Matt
Voulez-vous utiliser le même seau S3 ou 2 seaux différents? Quand vous dites en même temps, voulez-vous dire que vous pouvez les faire travailler l'un sans l'autre? – Benos