fix: 多域名部署BASEURL问题 - 配置优先+自动兜底

- processorResource: 改用 _LAST_BASEURL 记录最近请求域名(每次更新)
- filestorage.get_baseurl: BASEURL(显式配置)优先于 _LAST_BASEURL(自动推导)
- 多域名部署时运维设 BASEURL=主域名,单域名场景自动生效无需配置
This commit is contained in:
Hermes Agent 2026-06-23 17:58:14 +08:00
parent 815803f310
commit 52a55dcbee
2 changed files with 5 additions and 2 deletions

View File

@ -218,7 +218,8 @@ async def downloadfile2url(request, url, headers=None, params=None, data={}, met
return f'/idfile?path={quote(webpath)}'
def get_baseurl():
baseurl = os.environ.get('BASEURL')
# 优先级BASEURL显式配置多域名部署用 > _LAST_BASEURL自动推导单域名场景
baseurl = os.environ.get('BASEURL') or os.environ.get('_LAST_BASEURL')
return baseurl
async def base642file(b64str):

View File

@ -198,7 +198,9 @@ class ProcessorResource(StaticResource,Url2File):
portp = ''
self._preurl = f'{self._scheme}://{self._host}{portp}{self._prepath}'
request['base_url'] = self._preurl
os.environ.setdefault('BASEURL', self._preurl)
# 记录最近一次请求的 base URL供无 request 上下文的代码兜底使用
# 多域名部署时应通过 BASEURL 环境变量显式指定主域名
os.environ['_LAST_BASEURL'] = self._preurl
# print(f'{request.path=}, {self._preurl=}')