From aac5d31d970f84087309153a90f56773c2232bcb Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sat, 11 Oct 2025 11:02:34 +0800 Subject: [PATCH] bugfix --- ahserver/filestorage.py | 12 ++++++++++-- ahserver/globalEnv.py | 3 ++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ahserver/filestorage.py b/ahserver/filestorage.py index 68fdaa7..6dab1d9 100644 --- a/ahserver/filestorage.py +++ b/ahserver/filestorage.py @@ -182,14 +182,14 @@ def file_realpath(path): fs = FileStorage() return fs.realPath(path) -async def downloadfile(url, headers=None, params=None, data={}): +async def downloadfile(url, headers=None, params=None, data={}, method='GET'): filename = url.split('/')[-1] fs = FileStorage() fpath = fs._name2path(filename, userid='tmp') try: async with aiofiles.open(fpath,'wb') as f: shc = StreamHttpClient() - async for chunk in shc('GET', url, + async for chunk in shc(method, url, headers=headers, params=params, data=data): @@ -199,6 +199,14 @@ async def downloadfile(url, headers=None, params=None, data={}): exception(f'save {url} to {fpath} exception:{e}') raise e +async def downloadfile2url(request, url, headers=None, params=None, data={}, method='GET'): + fpath = await downloadfile(url, headers=headers, params=params, data=data, method=method) + fs = FileStorage() + webpath = fs.webpath(fs) + env = request._run_ns + url = env.entire_url('/idfile?path=') + env.quote(webpath) + return url + async def base642file(b64str): filename = getFilenameFromBase64(b64str) if ',' in b64str: diff --git a/ahserver/globalEnv.py b/ahserver/globalEnv.py index 5a9d6f6..09d027d 100644 --- a/ahserver/globalEnv.py +++ b/ahserver/globalEnv.py @@ -63,7 +63,7 @@ from .uriop import URIOp from .error import Success, Error, NeedLogin, NoPermission from .filetest import current_fileno from .filedownload import path_download, file_download -from .filestorage import FileStorage +from .filestorage import FileStorage, downloadfile2url from .serverenv import ServerEnv def server_error(errcode): @@ -317,6 +317,7 @@ def initEnv(): g.server_error = server_error g.FileStorage = FileStorage g.str_tmpl_render = string_template_render + g.downloadfile2url = downloadfile2url def set_builtins(): all_builtins = [ i for i in dir(builtins) if not i.startswith('_')]