From ae68241812907fdf8a9036bd04bb7943e2e4b2b2 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 17 Jan 2024 14:57:12 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E5=A4=8D=E5=BD=95=E5=83=8F?= =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E6=92=AD=E6=94=BE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jumpserver/rewriting/storage/servers.py | 14 ++++++++++++++ apps/jumpserver/settings/base.py | 4 +--- 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 apps/jumpserver/rewriting/storage/servers.py diff --git a/apps/jumpserver/rewriting/storage/servers.py b/apps/jumpserver/rewriting/storage/servers.py new file mode 100644 index 000000000..5fc4b0514 --- /dev/null +++ b/apps/jumpserver/rewriting/storage/servers.py @@ -0,0 +1,14 @@ +from private_storage.servers import NginxXAccelRedirectServer, DjangoServer + + +class StaticFileServer(object): + + @staticmethod + def serve(private_file): + full_path = private_file.full_path + # todo: gzip 文件录像 nginx 处理后,浏览器无法正常解析内容 + # 造成在线播放失败,暂时仅使用 nginx 处理 mp4 录像文件 + if full_path.endswith('.mp4'): + return NginxXAccelRedirectServer.serve(private_file) + else: + return DjangoServer.serve(private_file) diff --git a/apps/jumpserver/settings/base.py b/apps/jumpserver/settings/base.py index 4fdba8b97..10188a1a7 100644 --- a/apps/jumpserver/settings/base.py +++ b/apps/jumpserver/settings/base.py @@ -319,9 +319,7 @@ MEDIA_ROOT = os.path.join(PROJECT_DIR, 'data', 'media').replace('\\', '/') + '/' PRIVATE_STORAGE_ROOT = MEDIA_ROOT PRIVATE_STORAGE_AUTH_FUNCTION = 'jumpserver.rewriting.storage.permissions.allow_access' PRIVATE_STORAGE_INTERNAL_URL = '/private-media/' -PRIVATE_STORAGE_SERVER = 'nginx' -if DEBUG_DEV: - PRIVATE_STORAGE_SERVER = 'django' +PRIVATE_STORAGE_SERVER = 'jumpserver.rewriting.storage.servers.StaticFileServer' # Use django-bootstrap-form to format template, input max width arg