def handle(self, **kwargs): from django.conf import settings import os if hasattr(settings,"APP_MEDIA_ROOT"): for appname,mediadir in media_dirs(settings.INSTALLED_APPS): if os.path.isdir(os.path.join(mediadir,appname)): os.system("rsync -avc %s/ %s" % (mediadir,settings.APP_MEDIA_ROOT)) else: os.system("rsync -avc %s/ %s" % (mediadir,os.path.join(settings.APP_MEDIA_ROOT,appname)))
def process_response(self, request, response): if not hasattr(settings, "SITE_MEDIA_PREFIX"): return response for appname, mediadir in media_dirs(settings.INSTALLED_APPS): exp = "(%s%s)(.*)" % (settings.APP_MEDIA_PREFIX, appname) result = re.match(exp, request.path) if result: base, path = result.groups() if os.path.isdir(os.path.join(mediadir, appname)): return django.views.static.serve(request, path, os.path.join(mediadir, appname)) else: return django.views.static.serve(request, path, mediadir) exp = "(%s)(.*)" % settings.SITE_MEDIA_PREFIX result = re.match(exp, request.path) if result: base, path = result.groups() return django.views.static.serve(request, path, settings.SITE_MEDIA_ROOT) return response