From 197ad2cf6d784932b3b54220515870dcd7f40fa3 Mon Sep 17 00:00:00 2001 From: lian Date: Wed, 8 Dec 2021 16:04:38 +0800 Subject: [PATCH 1/2] add log when update file via wopi/onlyoffice failed --- seahub/onlyoffice/views.py | 18 +++++++++++++++--- seahub/wopi/views.py | 8 +++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/seahub/onlyoffice/views.py b/seahub/onlyoffice/views.py index 159aefdaa4..9f94765cd6 100644 --- a/seahub/onlyoffice/views.py +++ b/seahub/onlyoffice/views.py @@ -154,7 +154,13 @@ def onlyoffice_editor_callback(request): # update file update_url = gen_inner_file_upload_url('update-api', update_token) - requests.post(update_url, files=files) + resp = requests.post(update_url, files=files) + if resp.status_code != 200: + logger.error('update_url: {}'.format(update_url)) + logger.error('parameter file: {}'.format(files['file'][:100])) + logger.error('parameter file_name: {}'.format(files['file_name'])) + logger.error('parameter target_file: {}'.format(files['target_file'])) + logger.error('response: {}'.format(resp.__dict__)) # 2 - document is ready for saving, if status == 2: @@ -263,9 +269,15 @@ class OnlyofficeConvert(APIView): return prepared_request - requests.post(upload_url, files=files, auth=rewrite_request) + resp = requests.post(upload_url, files=files, auth=rewrite_request) else: - requests.post(upload_url, files=files) + resp = requests.post(upload_url, files=files) + + if resp.status_code != 200: + logger.error('upload_url: {}'.format(upload_url)) + logger.error('parameter file: {}'.format(files['file'][:100])) + logger.error('parameter parent_dir: {}'.format(files['parent_dir'])) + logger.error('response: {}'.format(resp.__dict__)) result = {} result['parent_dir'] = parent_dir diff --git a/seahub/wopi/views.py b/seahub/wopi/views.py index 39017e2235..9516489988 100644 --- a/seahub/wopi/views.py +++ b/seahub/wopi/views.py @@ -445,7 +445,13 @@ class WOPIFilesContentsView(APIView): 'file_name': os.path.basename(file_path), 'target_file': file_path, } - requests.post(update_url, files=files) + resp = requests.post(update_url, files=files) + if resp.status_code != 200: + logger.error('update_url: {}'.format(update_url)) + logger.error('parameter file: {}'.format(files['file'][:100])) + logger.error('parameter file_name: {}'.format(files['file_name'])) + logger.error('parameter target_file: {}'.format(files['target_file'])) + logger.error('response: {}'.format(resp.__dict__)) except Exception as e: logger.error(e) return HttpResponse(json.dumps({}), status=500, From 381f0d19de233f951cb3e91f8a9c30537033ee57 Mon Sep 17 00:00:00 2001 From: lian Date: Thu, 9 Dec 2021 11:49:30 +0800 Subject: [PATCH 2/2] fix parameter error when update file --- seahub/onlyoffice/views.py | 19 +++++++------------ seahub/wopi/views.py | 9 +++------ 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/seahub/onlyoffice/views.py b/seahub/onlyoffice/views.py index 9f94765cd6..1b527924c9 100644 --- a/seahub/onlyoffice/views.py +++ b/seahub/onlyoffice/views.py @@ -146,15 +146,12 @@ def onlyoffice_editor_callback(request): return HttpResponse('{"error": 1}') # get file content - files = { - 'file': onlyoffice_resp.content, - 'file_name': os.path.basename(file_path), - 'target_file': file_path, - } + files = {'file': (os.path.basename(file_path), onlyoffice_resp.content)} + data = {'target_file': file_path} # update file update_url = gen_inner_file_upload_url('update-api', update_token) - resp = requests.post(update_url, files=files) + resp = requests.post(update_url, files=files, data=data) if resp.status_code != 200: logger.error('update_url: {}'.format(update_url)) logger.error('parameter file: {}'.format(files['file'][:100])) @@ -246,10 +243,8 @@ class OnlyofficeConvert(APIView): file_name = get_file_name_without_ext(file_path) + new_ext file_name = check_filename_with_rename(repo_id, parent_dir, file_name) - files = { - 'file': (file_name, onlyoffice_resp.content), - 'parent_dir': parent_dir, - } + files = {'file': (file_name, onlyoffice_resp.content)} + data = {'parent_dir': parent_dir} upload_url = gen_inner_file_upload_url('upload-api', upload_token) try: @@ -269,9 +264,9 @@ class OnlyofficeConvert(APIView): return prepared_request - resp = requests.post(upload_url, files=files, auth=rewrite_request) + resp = requests.post(upload_url, files=files, data=data, auth=rewrite_request) else: - resp = requests.post(upload_url, files=files) + resp = requests.post(upload_url, files=files, data=data) if resp.status_code != 200: logger.error('upload_url: {}'.format(upload_url)) diff --git a/seahub/wopi/views.py b/seahub/wopi/views.py index 9516489988..d9536f3451 100644 --- a/seahub/wopi/views.py +++ b/seahub/wopi/views.py @@ -440,12 +440,9 @@ class WOPIFilesContentsView(APIView): update_url = gen_inner_file_upload_url('update-api', token) # update file - files = { - 'file': file_obj, - 'file_name': os.path.basename(file_path), - 'target_file': file_path, - } - resp = requests.post(update_url, files=files) + files = {'file': (os.path.basename(file_path), file_obj)} + data = {'target_file': file_path} + resp = requests.post(update_url, files=files, data=data) if resp.status_code != 200: logger.error('update_url: {}'.format(update_url)) logger.error('parameter file: {}'.format(files['file'][:100]))