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

View File

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