From 7742fc376841c5eb825e4b8cae39e6b067639a78 Mon Sep 17 00:00:00 2001 From: skywalker Date: Thu, 23 Sep 2021 17:38:34 +0800 Subject: [PATCH 1/3] office preview docker --- seahub/api2/views.py | 2 +- seahub/utils/__init__.py | 24 +++++++----------------- seahub/views/file.py | 11 ++++------- 3 files changed, 12 insertions(+), 25 deletions(-) diff --git a/seahub/api2/views.py b/seahub/api2/views.py index 3fbbf31ef5..383674e84a 100644 --- a/seahub/api2/views.py +++ b/seahub/api2/views.py @@ -5061,7 +5061,7 @@ class OfficeGenerateView(APIView): ret_dict = {} if HAS_OFFICE_CONVERTER: - err = prepare_converted_html(inner_path, obj_id, fileext, ret_dict) + err = prepare_converted_html(raw_path, obj_id, fileext, ret_dict) # populate return value dict ret_dict['err'] = err ret_dict['obj_id'] = obj_id diff --git a/seahub/utils/__init__.py b/seahub/utils/__init__.py index 7f19cafbbc..d0c7cfa109 100644 --- a/seahub/utils/__init__.py +++ b/seahub/utils/__init__.py @@ -1088,13 +1088,13 @@ HAS_OFFICE_CONVERTER = False if EVENTS_CONFIG_FILE: def check_office_converter_enabled(): enabled = False - if hasattr(seafevents, 'is_office_converter_enabled'): - enabled = seafevents.is_office_converter_enabled(parsed_events_conf) + if is_pro_version() and OFFICE_CONVERTOR_ROOT: + enabled = True - if enabled: - logging.debug('office converter: enabled') - else: - logging.debug('office converter: not enabled') + if enabled: + logging.debug('office converter: enabled') + else: + logging.debug('office converter: not enabled') return enabled def get_office_converter_html_dir(): @@ -1145,17 +1145,7 @@ if HAS_OFFICE_CONVERTER: ret['status'] = d['status'] return ret - def get_office_converted_page(request, static_filename, file_id): - office_out_dir = OFFICE_HTML_DIR - filepath = os.path.join(file_id, static_filename) - if static_filename.endswith('.pdf'): - office_out_dir = OFFICE_PDF_DIR - filepath = static_filename - return django_static_serve(request, - filepath, - document_root=office_out_dir) - - def cluster_get_office_converted_page(path, static_filename, file_id): + def get_office_converted_page(path, static_filename, file_id): url = urljoin(OFFICE_CONVERTOR_ROOT, '/get-converted-page') payload = {'exp': int(time.time()) + 300, } token = jwt.encode(payload, seahub.settings.SECRET_KEY, algorithm='HS256') diff --git a/seahub/views/file.py b/seahub/views/file.py index 170ed61d6b..82119fce4c 100644 --- a/seahub/views/file.py +++ b/seahub/views/file.py @@ -81,8 +81,8 @@ from seahub.drafts.utils import get_file_draft, \ if HAS_OFFICE_CONVERTER: from seahub.utils import ( - query_office_convert_status, cluster_get_office_converted_page, - prepare_converted_html, get_office_converted_page, CLUSTER_MODE + query_office_convert_status, get_office_converted_page, + prepare_converted_html, ) import seahub.settings as settings @@ -876,7 +876,7 @@ def view_lib_file(request, repo_id, path): return_dict['err'] = error_msg return render(request, template, return_dict) - error_msg = prepare_converted_html(inner_path, file_id, fileext, return_dict) + error_msg = prepare_converted_html(raw_path, file_id, fileext, return_dict) if error_msg: return_dict['err'] = error_msg return render(request, template, return_dict) @@ -1815,10 +1815,7 @@ def office_convert_get_page(request, repo_id, commit_id, path, filename): if filename.endswith('.pdf'): filename = "{0}.pdf".format(file_id) - if CLUSTER_MODE: - resp = cluster_get_office_converted_page(path, filename, file_id) - else: - resp = get_office_converted_page(request, filename, file_id) + resp = get_office_converted_page(path, filename, file_id) if filename.endswith('.page'): content_type = 'text/html' From 790fb1f5f47af6a4a1ccebd7f459017b164f0985 Mon Sep 17 00:00:00 2001 From: skywalker Date: Fri, 24 Sep 2021 15:09:40 +0800 Subject: [PATCH 2/3] remove office converter in seafevents --- seahub/api2/urls.py | 6 ------ seahub/utils/__init__.py | 34 +++++++--------------------------- 2 files changed, 7 insertions(+), 33 deletions(-) diff --git a/seahub/api2/urls.py b/seahub/api2/urls.py index bc763c91e4..4cf63a4a0e 100644 --- a/seahub/api2/urls.py +++ b/seahub/api2/urls.py @@ -110,12 +110,6 @@ urlpatterns = [ # serve office converter static files from seahub.utils import HAS_OFFICE_CONVERTER if HAS_OFFICE_CONVERTER: - from seahub.utils import OFFICE_HTML_DIR - from django.views.static import serve as static_view - - urlpatterns += [ - url(r'^office-convert/static/(?P.*)$', static_view, {'document_root': OFFICE_HTML_DIR}, name='api_office_convert_static'), - ] urlpatterns += [ url(r'^office-convert/status/$', OfficeConvertQueryStatus.as_view()), ] diff --git a/seahub/utils/__init__.py b/seahub/utils/__init__.py index d0c7cfa109..f18e5f9e79 100644 --- a/seahub/utils/__init__.py +++ b/seahub/utils/__init__.py @@ -1084,41 +1084,21 @@ if EVENTS_CONFIG_FILE: FILE_AUDIT_ENABLED = check_file_audit_enabled() # office convert related -HAS_OFFICE_CONVERTER = False -if EVENTS_CONFIG_FILE: - def check_office_converter_enabled(): - enabled = False - if is_pro_version() and OFFICE_CONVERTOR_ROOT: - enabled = True - - if enabled: - logging.debug('office converter: enabled') - else: - logging.debug('office converter: not enabled') - return enabled - - def get_office_converter_html_dir(): - return seafevents.get_office_converter_dir(parsed_events_conf, 'html') - - def get_office_converter_pdf_dir(): - return seafevents.get_office_converter_dir(parsed_events_conf, 'pdf') - - def get_office_converter_limit(): - return seafevents.get_office_converter_limit(parsed_events_conf) - - HAS_OFFICE_CONVERTER = check_office_converter_enabled() +def check_office_converter_enabled(): + if is_pro_version() and OFFICE_CONVERTOR_ROOT: + return True + return False +HAS_OFFICE_CONVERTER = check_office_converter_enabled() OFFICE_PREVIEW_MAX_SIZE = 2 * 1024 * 1024 +OFFICE_PREVIEW_MAX_PAGES = 50 + if HAS_OFFICE_CONVERTER: import time import requests import jwt - OFFICE_HTML_DIR = get_office_converter_html_dir() - OFFICE_PDF_DIR = get_office_converter_pdf_dir() - OFFICE_PREVIEW_MAX_SIZE, OFFICE_PREVIEW_MAX_PAGES = get_office_converter_limit() - def add_office_convert_task(file_id, doctype, raw_path): payload = {'exp': int(time.time()) + 300, } token = jwt.encode(payload, seahub.settings.SECRET_KEY, algorithm='HS256') From 481e8a1d13420997d9e390a866aeadd40e074f48 Mon Sep 17 00:00:00 2001 From: skywalker Date: Fri, 24 Sep 2021 17:18:47 +0800 Subject: [PATCH 3/3] office preview not pro --- seahub/utils/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seahub/utils/__init__.py b/seahub/utils/__init__.py index f18e5f9e79..459866f2d9 100644 --- a/seahub/utils/__init__.py +++ b/seahub/utils/__init__.py @@ -1085,7 +1085,7 @@ if EVENTS_CONFIG_FILE: # office convert related def check_office_converter_enabled(): - if is_pro_version() and OFFICE_CONVERTOR_ROOT: + if OFFICE_CONVERTOR_ROOT: return True return False