将静态文件同时存储在S3 _AND_本地?

时间:2016-08-17 08:50:54

标签: django amazon-s3

我已成功使用django-storages将所有静态和媒体文件存储在Amazon S3上的Django中 - 但我也想同时将它们存储在服务器上。

因此,当我运行collectstatic时,我希望它同步/static文件夹和s3.domain.tld/static文件夹。

我的设置如下:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'cupcard/static')]
STATICFILES_LOCATION = 'static'
STATIC_URL = "http://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, STATICFILES_LOCATION)
STATICFILES_STORAGE = 'lindshop.utils.custom_storages.CachedS3BotoStorage'

我当前的静态存储看起来像这样:

class CachedS3BotoStorage(S3BotoStorage):
    location = settings.STATICFILES_LOCATION

    def __init__(self, *args, **kwargs):
        super(CachedS3BotoStorage, self).__init__(*args, **kwargs)
        self.local_storage = get_storage_class(
            "compressor.storage.CompressorFileStorage")()

    def save(self, name, content):
        non_gzipped_file_content = content.file
        name = super(CachedS3BotoStorage, self).save(name, content)
        content.file = non_gzipped_file_content
        self.local_storage._save(name, content)
        return name

当我运行python manage.py collectstatic时,它只与S3同步。它不会将文件添加到本地/static文件夹。

0 个答案:

没有答案