我将 django-storages 和 sorl_thumbnail 一起使用,并且我将 Amazon S3 用于静态和媒体文件。我正在使用一个带有 2 个文件夹的存储桶,1 个用于静态文件夹,1 个用于媒体文件夹。
这是我的配置:
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
并StaticRootS3BotoStorage
定义如下:
StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static')
MediaRootS3BotoStorage = lambda: S3BotoStorage(location='media')
当我使用 sorl_thumbnail 时,生成的缩略图位于正确的目录中:https://s3.amazonaws.com/my-bucket/media/cache
但是当 sorl_thumbnail 试图检索已经存在的缩略图时,生成的 URL 是:https://s3.amazonaws.com/my-bucket/cache
,您会注意到该media
文件夹被省略了。
你知道我该如何解决吗?
我知道我可以只使用 django-storages 并将我的静态和媒体文件都混合在我的存储桶中,但这对我的口味来说有点太脏了 :)
谢谢!