diff options
-rw-r--r-- | askbot/deps/livesettings/values.py | 17 | ||||
-rw-r--r-- | askbot/doc/source/changelog.rst | 1 | ||||
-rw-r--r-- | askbot/views/writers.py | 4 |
3 files changed, 15 insertions, 7 deletions
diff --git a/askbot/deps/livesettings/values.py b/askbot/deps/livesettings/values.py index c6708bdb..e5516d8b 100644 --- a/askbot/deps/livesettings/values.py +++ b/askbot/deps/livesettings/values.py @@ -639,13 +639,20 @@ class ImageValue(StringValue): """uploaded_file is an instance of django UploadedFile object """ - #1) come up with a file name + #0) initialize file storage + file_storage_class = storage.get_storage_class() - file_storage = storage.FileSystemStorage( - location = self.upload_directory, - base_url = self.upload_url - ) + storage_settings = {} + if django_settings.DEFAULT_FILE_STORAGE == \ + 'django.core.files.storage.FileSystemStorage': + storage_settings = { + 'location': self.upload_directory, + 'base_url': self.upload_url + } + file_storage = file_storage_class(**storage_settings) + + #1) come up with a file name #todo: need better function here to calc name file_name = file_storage.get_available_name(uploaded_file.name) file_storage.save(file_name, uploaded_file) diff --git a/askbot/doc/source/changelog.rst b/askbot/doc/source/changelog.rst index edffc0e5..45a6f49b 100644 --- a/askbot/doc/source/changelog.rst +++ b/askbot/doc/source/changelog.rst @@ -17,6 +17,7 @@ Development version (not released yet) * when internal login app is disabled - links to login/logout/add-remove-login-methods are gone (Evgeny) * replaced setting `ASKBOT_FILE_UPLOAD_DIR` with django's `MEDIA_ROOT` (Evgeny) * replaced setting `ASKBOT_UPLOADED_FILES_URL` with django's `MEDIA_URL` (Evgeny) +* allowed changing file storage backend for file uploads by configuration (Evgeny) 0.7.36 (Dec 20, 2011) --------------------- diff --git a/askbot/views/writers.py b/askbot/views/writers.py index d76929f7..c4d60de9 100644 --- a/askbot/views/writers.py +++ b/askbot/views/writers.py @@ -12,7 +12,7 @@ import random import sys import tempfile import time -from django.core.files.storage import FileSystemStorage +from django.core.files.storage import get_storage_class from django.shortcuts import get_object_or_404 from django.contrib.auth.decorators import login_required from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidden, Http404 @@ -78,7 +78,7 @@ def upload(request):#ajax upload file to a question or answer str(random.randint(0,100000)) ) + file_extension - file_storage = FileSystemStorage() + file_storage = get_storage_class()() # use default storage to store file file_storage.save(new_file_name, f) # check file size |