diff --git a/seahub/api2/utils.py b/seahub/api2/utils.py index 2a219dde95..2d3169e9ad 100644 --- a/seahub/api2/utils.py +++ b/seahub/api2/utils.py @@ -297,7 +297,7 @@ def get_group_msgs(groupid, page, username): if not att.obj_id: att.err = 'File does not exist' else: - att.token = seafile_api.get_httpserver_access_token( + att.token = seafile_api.get_fileserver_access_token( att.repo_id, att.obj_id, 'view', username) att.img_url = gen_file_get_url(att.token, att.name) @@ -503,4 +503,4 @@ def get_diff_details(repo_id, commit1, commit2): elif d.status == 'deldir': result['deleted_dirs'].append(d.name) - return result \ No newline at end of file + return result diff --git a/seahub/api2/views.py b/seahub/api2/views.py index 8a3f7c0828..48afa10e41 100644 --- a/seahub/api2/views.py +++ b/seahub/api2/views.py @@ -812,7 +812,7 @@ class UploadLinkView(APIView): if check_quota(repo_id) < 0: return api_error(HTTP_520_OPERATION_FAILED, 'Above quota') - token = seafile_api.get_httpserver_access_token( + token = seafile_api.get_fileserver_access_token( repo_id, 'dummy', 'upload', request.user.username) url = gen_file_upload_url(token, 'upload-api') return Response(url) @@ -829,7 +829,7 @@ class UpdateLinkView(APIView): if check_quota(repo_id) < 0: return api_error(HTTP_520_OPERATION_FAILED, 'Above quota') - token = seafile_api.get_httpserver_access_token( + token = seafile_api.get_fileserver_access_token( repo_id, 'dummy', 'update', request.user.username) url = gen_file_upload_url(token, 'update-api') return Response(url) @@ -846,7 +846,7 @@ class UploadBlksLinkView(APIView): if check_quota(repo_id) < 0: return api_error(HTTP_520_OPERATION_FAILED, 'Above quota') - token = seafile_api.get_httpserver_access_token( + token = seafile_api.get_fileserver_access_token( repo_id, 'dummy', 'upload-blks', request.user.username) url = gen_file_upload_url(token, 'upload-blks-api') return Response(url) @@ -863,7 +863,7 @@ class UpdateBlksLinkView(APIView): if check_quota(repo_id) < 0: return api_error(HTTP_520_OPERATION_FAILED, 'Above quota') - token = seafile_api.get_httpserver_access_token( + token = seafile_api.get_fileserver_access_token( repo_id, 'dummy', 'update-blks', request.user.username) url = gen_file_upload_url(token, 'update-blks-api') return Response(url) @@ -938,7 +938,7 @@ def get_shared_link(request, repo_id, path): def get_repo_file(request, repo_id, file_id, file_name, op): if op == 'download': - token = seafile_api.get_httpserver_access_token(repo_id, file_id, op, + token = seafile_api.get_fileserver_access_token(repo_id, file_id, op, request.user.username) redirect_url = gen_file_get_url(token, file_name) response = HttpResponse(json.dumps(redirect_url), status=200, @@ -962,7 +962,7 @@ def get_repo_file(request, repo_id, file_id, file_name, op): repo = get_repo(repo_id) encrypted = repo.encrypted enc_version = repo.enc_version - token = seafile_api.get_httpserver_access_token( + token = seafile_api.get_fileserver_access_token( repo_id, file_id, op, request.user.username) url = gen_block_get_url(token, None) res = { @@ -3034,7 +3034,7 @@ def html_get_group_discussion(request, msg_id): if not att.obj_id: att.err = 'File does not exist' else: - att.token = seafile_api.get_httpserver_access_token( + att.token = seafile_api.get_fileserver_access_token( att.repo_id, att.obj_id, 'view', request.user.username) att.img_url = gen_file_get_url(att.token, att.name) diff --git a/seahub/settings.py b/seahub/settings.py index 9cffcabfc6..d5e3062165 100644 --- a/seahub/settings.py +++ b/seahub/settings.py @@ -7,7 +7,7 @@ import re import random import string -from seaserv import HTTP_SERVER_ROOT, HTTP_SERVER_PORT, HTTP_SERVER_HTTPS +from seaserv import FILE_SERVER_ROOT, FILE_SERVER_PORT PROJECT_ROOT = os.path.join(os.path.dirname(__file__), os.pardir) @@ -431,6 +431,10 @@ def load_local_settings(module): that begin with "EXTRA_". ''' + if hasattr(module, 'HTTP_SERVER_ROOT'): + if not hasattr(module, 'FILE_SERVER_ROOT'): + module.FILE_SERVER_ROOT = module.HTTP_SERVER_ROOT + del module.HTTP_SERVER_ROOT for attr in dir(module): match = re.search('^EXTRA_(\w+)', attr) if match: @@ -491,8 +495,4 @@ if 'win32' in sys.platform: # other settings files. LOGIN_URL = SITE_ROOT + 'accounts/login' -if HTTP_SERVER_HTTPS: - INNER_HTTP_SERVER_ROOT = 'https://127.0.0.1:' + HTTP_SERVER_PORT -else: - INNER_HTTP_SERVER_ROOT = 'http://127.0.0.1:' + HTTP_SERVER_PORT - +INNER_FILE_SERVER_ROOT = 'http://127.0.0.1:' + FILE_SERVER_PORT diff --git a/seahub/templates/file_upload_progress_page.html b/seahub/templates/file_upload_progress_page.html index 7aade5b696..b1eb92eb11 100644 --- a/seahub/templates/file_upload_progress_page.html +++ b/seahub/templates/file_upload_progress_page.html @@ -5,7 +5,7 @@ // Update progress bar function updateProgress() { $.ajax({ - url: '{{ httpserver_root }}/upload_progress/?X-Progress-ID=' + '{{ uuid }}' + '&callback=?', + url: '{{ fileserver_root }}/upload_progress/?X-Progress-ID=' + '{{ uuid }}' + '&callback=?', dataType: 'jsonp', cache: false, success: function(data) { diff --git a/seahub/utils/__init__.py b/seahub/utils/__init__.py index 185731937f..5e1e63b4cf 100644 --- a/seahub/utils/__init__.py +++ b/seahub/utils/__init__.py @@ -44,9 +44,9 @@ try: except ImportError: CLOUD_MODE = False try: - from seahub.settings import ENABLE_INNER_HTTPSERVER + from seahub.settings import ENABLE_INNER_FILESERVER except ImportError: - ENABLE_INNER_HTTPSERVER = True + ENABLE_INNER_FILESERVER = True try: from seahub.settings import CHECK_SHARE_LINK_TRAFFIC @@ -125,23 +125,23 @@ def list_to_string(l): """ return ','.join(l) -def get_httpserver_root(): - """ Construct seafile httpserver address and port. +def get_fileserver_root(): + """ Construct seafile fileserver address and port. Returns: - Constructed httpserver root. + Constructed fileserver root. """ - from seahub.settings import HTTP_SERVER_ROOT + from seahub.settings import FILE_SERVER_ROOT - assert HTTP_SERVER_ROOT is not None, "SERVICE_URL is not set in ccnet.conf." + assert FILE_SERVER_ROOT is not None, "SERVICE_URL is not set in ccnet.conf." - return HTTP_SERVER_ROOT + return FILE_SERVER_ROOT -def get_inner_httpserver_root(): - """Construct inner seafile httpserver address and port. +def get_inner_fileserver_root(): + """Construct inner seafile fileserver address and port. - Inner httpserver root allows Seahub access httpserver through local + Inner fileserver root allows Seahub access fileserver through local address, thus avoiding the overhead of DNS queries, as well as other related issues, for example, the server can not ping itself, etc. @@ -149,7 +149,7 @@ def get_inner_httpserver_root(): http://127.0.0.1: """ - return seahub.settings.INNER_HTTP_SERVER_ROOT + return seahub.settings.INNER_FILE_SERVER_ROOT def gen_token(max_length=5): """ @@ -362,10 +362,10 @@ def get_commit_before_new_merge(commit): return commit def gen_inner_file_get_url(token, filename): - """Generate inner httpserver file url. + """Generate inner fileserver file url. - If ``ENABLE_INNER_HTTPSERVER`` set to False(defaults to True), will - returns outer httpserver file url. + If ``ENABLE_INNER_FILESERVER`` set to False(defaults to True), will + returns outer fileserver file url. Arguments: - `token`: @@ -374,8 +374,8 @@ def gen_inner_file_get_url(token, filename): Returns: e.g., http://127.0.0.1:/files// """ - if ENABLE_INNER_HTTPSERVER: - return '%s/files/%s/%s' % (get_inner_httpserver_root(), token, + if ENABLE_INNER_FILESERVER: + return '%s/files/%s/%s' % (get_inner_fileserver_root(), token, urlquote(filename)) else: return gen_file_get_url(token, filename) @@ -389,23 +389,23 @@ def get_max_upload_file_size(): def gen_block_get_url(token, blkid): """ - Generate httpserver block url. + Generate fileserver block url. Format: http:///blks// """ if blkid: - return '%s/blks/%s/%s' % (get_httpserver_root(), token, blkid) + return '%s/blks/%s/%s' % (get_fileserver_root(), token, blkid) else: - return '%s/blks/%s/' % (get_httpserver_root(), token) + return '%s/blks/%s/' % (get_fileserver_root(), token) def gen_file_get_url(token, filename): """ - Generate httpserver file url. + Generate fileserver file url. Format: http:///files// """ - return '%s/files/%s/%s' % (get_httpserver_root(), token, urlquote(filename)) + return '%s/files/%s/%s' % (get_fileserver_root(), token, urlquote(filename)) def gen_file_upload_url(token, op): - return '%s/%s/%s' % (get_httpserver_root(), op, token) + return '%s/%s/%s' % (get_fileserver_root(), op, token) def get_ccnet_server_addr_port(): """get ccnet server host and port""" diff --git a/seahub/views/__init__.py b/seahub/views/__init__.py index 6fa4681235..062510adf1 100644 --- a/seahub/views/__init__.py +++ b/seahub/views/__init__.py @@ -44,7 +44,7 @@ from seahub.profile.models import Profile from seahub.share.models import FileShare, PrivateFileDirShare, UploadLinkShare from seahub.forms import RepoPassowrdForm, RepoSettingForm from seahub.utils import render_permission_error, render_error, list_to_string, \ - get_httpserver_root, gen_shared_upload_link, \ + get_fileserver_root, gen_shared_upload_link, \ gen_dir_share_link, gen_file_share_link, get_repo_last_modify, \ calculate_repos_last_modify, get_file_type_and_ext, get_user_repos, \ EMPTY_SHA1, normalize_file_path, is_valid_username, \ @@ -1244,11 +1244,11 @@ def file_upload_progress_page(request): ''' uuid = request.GET.get('uuid', '') - httpserver_root = get_httpserver_root() + fileserver_root = get_fileserver_root() upload_progress_con_id = request.GET.get('upload_progress_con_id', '') return render_to_response('file_upload_progress_page.html', { 'uuid': uuid, - 'httpserver_root': httpserver_root, + 'fileserver_root': fileserver_root, 'upload_progress_con_id': upload_progress_con_id, }, context_instance=RequestContext(request)) @@ -1507,7 +1507,7 @@ def view_shared_upload_link(request, token): max_upload_file_size = MAX_UPLOAD_FILE_SIZE no_quota = True if seaserv.check_quota(repo_id) < 0 else False - token = seafile_api.get_httpserver_access_token(repo_id, 'dummy', + token = seafile_api.get_fileserver_access_token(repo_id, 'dummy', 'upload', request.user.username) ajax_upload_url = gen_file_upload_url(token, 'upload-api').replace('api', 'aj') diff --git a/seahub/views/ajax.py b/seahub/views/ajax.py index c40653131f..fb4cb271c0 100644 --- a/seahub/views/ajax.py +++ b/seahub/views/ajax.py @@ -1601,7 +1601,7 @@ def get_file_op_url(request, repo_id): username = request.user.username url = '' if check_repo_access_permission(repo_id, request.user) == 'rw': - token = seafile_api.get_httpserver_access_token(repo_id, 'dummy', + token = seafile_api.get_fileserver_access_token(repo_id, 'dummy', op_type, username) url = gen_file_upload_url(token, op_type + '-aj') diff --git a/seahub/views/file.py b/seahub/views/file.py index c133c94377..0c65a65bc3 100644 --- a/seahub/views/file.py +++ b/seahub/views/file.py @@ -158,7 +158,7 @@ def get_file_view_path_and_perm(request, repo_id, obj_id, path): """ Get path and the permission to view file. Returns: - outer httpserver file url, inner httpserver file url, permission + outer fileserver file url, inner fileserver file url, permission """ username = request.user.username filename = os.path.basename(path) @@ -988,7 +988,7 @@ def get_file_content_by_commit_and_path(request, repo_id, commit_id, path, file_ try: err, file_content, encoding = repo_file_get(inner_path, file_enc) except Exception, e: - return None, 'error when read file from httpserver: %s' % e + return None, 'error when read file from fileserver: %s' % e return file_content, err @login_required @@ -1138,7 +1138,7 @@ def view_priv_shared_file(request, token): filename = os.path.basename(path) filetype, fileext = get_file_type_and_ext(filename) - access_token = seafile_api.get_httpserver_access_token(repo.id, obj_id, + access_token = seafile_api.get_fileserver_access_token(repo.id, obj_id, 'view', username) raw_path = gen_file_get_url(access_token, filename) inner_path = gen_inner_file_get_url(access_token, filename) diff --git a/seahub/views/repo.py b/seahub/views/repo.py index 350ff40dd9..2fe7d5d81c 100644 --- a/seahub/views/repo.py +++ b/seahub/views/repo.py @@ -22,7 +22,7 @@ from seahub.views import gen_path_link, get_repo_dirents, \ check_repo_access_permission from seahub.utils import gen_file_upload_url, is_org_context, \ - get_httpserver_root, gen_dir_share_link, gen_shared_upload_link, \ + get_fileserver_root, gen_dir_share_link, gen_shared_upload_link, \ get_max_upload_file_size, new_merge_with_no_conflict, \ get_commit_before_new_merge from seahub.settings import ENABLE_SUB_LIBRARY, FORCE_SERVER_CRYPTO @@ -87,7 +87,7 @@ def is_no_quota(repo_id): def get_upload_url(request, repo_id): username = request.user.username if check_repo_access_permission(repo_id, request.user) == 'rw': - token = seafile_api.get_httpserver_access_token(repo_id, 'dummy', + token = seafile_api.get_fileserver_access_token(repo_id, 'dummy', 'upload', username) return gen_file_upload_url(token, 'upload') else: @@ -98,7 +98,7 @@ def get_upload_url(request, repo_id): # """ # username = request.user.username # if check_repo_access_permission(repo_id, request.user) == 'rw': -# token = seafile_api.get_httpserver_access_token(repo_id, 'dummy', +# token = seafile_api.get_fileserver_access_token(repo_id, 'dummy', # 'upload', username) # return gen_file_upload_url(token, 'upload-api') # else: @@ -107,7 +107,7 @@ def get_upload_url(request, repo_id): # def get_api_update_url(request, repo_id): # username = request.user.username # if check_repo_access_permission(repo_id, request.user) == 'rw': -# token = seafile_api.get_httpserver_access_token(repo_id, 'dummy', +# token = seafile_api.get_fileserver_access_token(repo_id, 'dummy', # 'update', username) # return gen_file_upload_url(token, 'update-api') # else: @@ -183,7 +183,7 @@ def render_repo(request, repo): }, context_instance=RequestContext(request)) # query context args - httpserver_root = get_httpserver_root() + fileserver_root = get_fileserver_root() max_upload_file_size = get_max_upload_file_size() protocol = request.is_secure() and 'https' or 'http' @@ -255,7 +255,7 @@ def render_repo(request, repo): 'no_quota': no_quota, 'max_upload_file_size': max_upload_file_size, 'upload_url': upload_url, - 'httpserver_root': httpserver_root, + 'fileserver_root': fileserver_root, 'protocol': protocol, 'domain': domain, 'fileshare': fileshare,