Work in progress: django-imagekit but for all types of media files (movies, PDFs etc.). + private media
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.4 KiB

9 years ago
"""
Functions responsible for returning filenames for the given image generator.
Users are free to define their own functions; these are just some some sensible
choices.
"""
from django.conf import settings
import os
from ..utils import suggest_extension
def spec_slug_as_path(generator):
"""
A namer that, given the following source file name::
<asset_uuid>/original/bulldog.jpg
will generate a relative name like this::
<spec_slug>/5ff3233527c5ac3e4b596343b440ff67.jpg
which is meant to be added to both
<asset_uuid>/cache/
<asset_uuid>/manual/
.
"""
source_filename = getattr(generator.source, 'name', None)
spec_slug = getattr(generator, 'slug', None)
ext = suggest_extension(source_filename or '', generator.format)
if source_filename is None or os.path.isabs(source_filename):
# Generally, we put the file right in the cache file directory.
dir = settings.IMAGEKIT_CACHEFILE_DIR
else:
# For source files with relative names (like Django media files),
# use the source's name to create the new filename.
dir = os.path.join(settings.IMAGEKIT_CACHEFILE_DIR,
os.path.splitext(source_filename)[0])
return os.path.normpath(os.path.join(dir,
'%s%s' % (generator.get_hash(), ext)))