В работе сервиса Seafile обнаружился странный баг. При создании ссылки с паролем на папку вылетает ошибка при открытии страницы:
“Page unavailable Sorry, but the requested page is unavailable due to a server hiccup. Our engineers have been notified, so check back later.”
При создании ссылки на папку без пароля всё проходит нормально. Версия сервера – 7.1.3. Лечится добавлением в методе view_shared_dir проверки на пустую строку.
Нужно в файле seahub/views/repo.py, найти метод view_shared_dir
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
def view_shared_dir(request, fileshare): token = fileshare.token password_check_passed, err_msg = check_share_link_common(request, fileshare) if not password_check_passed: d = {'token': token, 'view_name': 'view_shared_dir', 'err_msg': err_msg} return render(request, 'share_access_validation.html', d) username = fileshare.username repo_id = fileshare.repo_id # Get path from frontend, use '/' if missing, and construct request path # with fileshare.path to real path, used to fetch dirents by RPC. req_path = request.GET.get('p', '/') if req_path[-1] != '/': req_path += '/' |
и изменить в req_path на пустую строку:
1 2 3 4 5 |
# Get path from frontend, use '/' if missing, and construct request path # with fileshare.path to real path, used to fetch dirents by RPC. req_path = request.GET.get('p', '/') if req_path=="" or req_path[-1] != '/': req_path += '/' |