storage.py 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. # Copyright (C) 2014 Andrey Antukh <niwi@niwi.be>
  2. # Copyright (C) 2014 Jesús Espino <jespinog@gmail.com>
  3. # Copyright (C) 2014 David Barragán <bameda@dbarragan.com>
  4. # This program is free software: you can redistribute it and/or modify
  5. # it under the terms of the GNU Affero General Public License as
  6. # published by the Free Software Foundation, either version 3 of the
  7. # License, or (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU Affero General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU Affero General Public License
  15. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. from django.conf import settings
  17. from django.core.files import storage
  18. import django_sites as sites
  19. class FileSystemStorage(storage.FileSystemStorage):
  20. def __init__(self, *args, **kwargs):
  21. super().__init__(*args, **kwargs)
  22. if settings.MEDIA_URL.startswith("/"):
  23. site = sites.get_current()
  24. url_tmpl = "{scheme}//{domain}{url}"
  25. scheme = site.scheme and "{0}:".format(site.scheme) or ""
  26. self.base_url = url_tmpl.format(scheme=scheme, domain=site.domain,
  27. url=settings.MEDIA_URL)