Don't instantiate the local compressor storage backend all the time.

This commit is contained in:
Jannis Leidel
2011-11-02 12:46:57 +01:00
parent c2f414da04
commit 6003619252
2 changed files with 7 additions and 4 deletions

View File

@@ -13,7 +13,7 @@ from compressor.cache import get_hexdigest, get_mtime
from compressor.conf import settings
from compressor.exceptions import CompressorError, UncompressableFileError
from compressor.filters import CompilerFilter
from compressor.storage import default_storage
from compressor.storage import default_storage, compressor_file_storage
from compressor.signals import post_compress
from compressor.utils import get_class, staticfiles
from compressor.utils.decorators import cached_property, memoize
@@ -74,8 +74,7 @@ class Compressor(object):
filename = self.storage.path(basename)
except NotImplementedError:
# remote storages don't implement path, access the file locally
local_storage = get_storage_class('compressor.storage.CompressorFileStorage')()
filename = local_storage.path(basename)
filename = compressor_file_storage.path(basename)
# secondly try finding the file in the root
elif self.finders:
filename = self.finders.find(basename)

View File

@@ -3,7 +3,7 @@ from os import path
from datetime import datetime
from django.core.files.storage import FileSystemStorage, get_storage_class
from django.utils.functional import LazyObject
from django.utils.functional import LazyObject, SimpleLazyObject
from compressor.conf import settings
@@ -42,6 +42,10 @@ class CompressorFileStorage(FileSystemStorage):
return name
compressor_file_storage = SimpleLazyObject(
lambda: get_storage_class('compressor.storage.CompressorFileStorage')())
class GzipCompressorFileStorage(CompressorFileStorage):
"""
The standard compressor file system storage that gzips storage files