Sto usando django-storages e sorl_thumbnail insieme e sto usando Amazon S3 per file statici e multimediali. Sto usando un secchio con 2 cartelle, 1 per statico e 1 per media.django-storages + sorl_thumbnail + S3 non funziona bene insieme (URL non corrispondenti)
Ecco la mia configurazione:
MEDIA_ROOT = '/media/'
MEDIA_URL = 'https://s3.amazonaws.com/my-bucket/media/'
STATIC_ROOT = '/static/'
STATIC_URL = 'https://s3.amazonaws.com/my-bucket/static/'
AWS_STORAGE_BUCKET_NAME = 'my-bucket'
DEFAULT_FILE_STORAGE = 'my_lib.s3utils.MediaRootS3BotoStorage'
STATICFILES_STORAGE = 'my_lib.s3utils.StaticRootS3BotoStorage'
MediaRootS3BotoStorage
e StaticRootS3BotoStorage
sono definiti in questo modo:
StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static')
MediaRootS3BotoStorage = lambda: S3BotoStorage(location='media')
Quando sto usando sorl_thumbnail, le miniature generate si trovano nella directory giusta: https://s3.amazonaws.com/my-bucket/media/cache
ma quando sorl_thumbnail sta cercando di recuperare una miniatura già esistente, l'URL generato è: https://s3.amazonaws.com/my-bucket/cache
, si noterà che la cartella media
è stata omessa.
Avete qualche idea su come potrei risolverlo?
So che potrei semplicemente usare django-depositi e avere i miei file multimediali statici e tutto confuso nel mio secchio, ma questo è un po 'troppo sporca per i miei gusti :)
Grazie!
I metodi 'super()' su ciascuno dei metodi '__init __()' stanno chiamando le classi sbagliate. Essi dovrebbero essere: 'super (StaticRootS3BotoStorage, auto) .__ init __ (* args, ** kwargs)' e 'super (MediaRootS3BotoStorage, auto) .__ init __ (* args, ** kwargs)' – niceguydave