Support for typesense in Subdirectory ?
还没有人认领这个 Issue。
评估
调研方向
Start with the URL construction in typesense/api_call.py and the is_healthy entry point shown in typesense/operations.py. Reproduce the node configurations from the issue and inspect how path and port are combined. Done means subdirectory requests form the intended /search/health URL without misplacing the port, with verification for this configuration.
由索引模型根据 Issue 内容生成。
描述
Description
Our installation scheme is to install typesense as a subdirectory, so the url is https://xxx.yyy.ch/search.
But with typesense-python I cannot connect. Restful (tested with Postman) it works.
Is there any explanation ?
Steps to reproduce
following config cannot connect (logfile below)
{
'api_key': _API_KEY,
'nodes': [{
'host': 'xxx.yyy.ch',
'port': '443',
'protocol': 'https',
'path': '/search'
}],
'connection_timeout_seconds': 2
}
And this config appends the port at wrong place [...] with url: /search:443/health
{
'api_key': _API_KEY,
'nodes': [{
'host': 'xxx.yyy.ch/search',
'port': '443',
'protocol': 'https'
}],
'connection_timeout_seconds': 2
}
Log
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): xxx.yyy.ch:443
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (2): xxx.yyy.ch:443
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (3): xxx.yyy.ch:443
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (4): xxx.yyy.ch:443
Traceback (most recent call last):
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 466, in _make_request
self._validate_conn(conn)
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 1095, in _validate_conn
conn.connect()
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connection.py", line 652, in connect
sock_and_verified = _ssl_wrap_socket_and_match_hostname(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connection.py", line 805, in _ssl_wrap_socket_and_match_hostname
ssl_sock = ssl_wrap_socket(
^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\util\ssl_.py", line 465, in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\util\ssl_.py", line 509, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\ssl.py", line 517, in wrap_socket
return self.sslsocket_class._create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\ssl.py", line 1104, in _create
self.do_handshake()
File "C:\bin\anaconda3\Lib\ssl.py", line 1382, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 789, in urlopen
response = self._make_request(
^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 490, in _make_request
raise new_e
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\bin\anaconda3\Lib\site-packages\requests\adapters.py", line 486, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\connectionpool.py", line 843, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\urllib3\util\retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='xxx.yyy.ch', port=443): Max retries exceeded with url: /search/health (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\data\_azure\tgdisearch\health.py", line 14, in <module>
is_healty(active_client)
File "C:\data\_azure\tgdisearch\health.py", line 10, in is_healty
health = client_object.operations.is_healthy()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\typesense\operations.py", line 22, in is_healthy
call_resp = self.api_call.get(Operations.HEALTH_PATH)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\typesense\api_call.py", line 146, in get
return self.make_request(session.get, endpoint, as_json,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\typesense\api_call.py", line 130, in make_request
raise last_exception
File "C:\bin\anaconda3\Lib\site-packages\typesense\api_call.py", line 101, in make_request
r = fn(url, headers={ApiCall.API_KEY_HEADER_NAME: self.config.api_key}, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\requests\sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\requests\sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\requests\sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\bin\anaconda3\Lib\site-packages\requests\adapters.py", line 517, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='xxx.yyy.ch', port=443): Max retries exceeded with url: /search/health (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)')))
Metadata
version = '0.21.0'
- 主要语言
- Python
- 星标
- 247
- 派生
- 66
- 平均合并
- 22 小时 47 分钟
- 30 天内合并 PR
- 8
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
typesense/typesense-python 的其他 Issue
-
`MultiSearchResponse` type does not account for union search response shape可能已有人在做 @tharropoulos 于 172 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
typesense/typesense-python#128 ·
-
`documents.Documents.import_()` `batch_size` argument is ignored, type of `import_parameters` is missing `batch_size`可能已有人在做 @tharropoulos 于 245 天前认领。 未关闭
难度 2/5 1-2 天 新手友好度 68/100
typesense/typesense-python#124 ·
-
难度 1/5 1 小时以内 新手友好度 68/100
typesense/typesense-python#100 ·
-
难度 3/5 1-2 天 新手友好度 35/100
typesense/typesense-python#122 · 3 条评论 ·
-
[Bug] - DeprecationWarning on instantiation of Client可能已有人在做 @tharropoulos 于 266 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 55/100
typesense/typesense-python#114 · 8 条评论 ·
查看 typesense/typesense-python 的全部 Issue
相似的 Issue
-
type-bug
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
push_gh-pages fails on master branch on forks可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭good first issue infrastructure
难度 2/5 1-3 小时 新手友好度 76/100
kuznia-rdzeni/coreblocks#1135 ·
-
good first issue server
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
documentation priority: high
难度 2/5 1-3 小时 新手友好度 78/100
a-lex-s/mealie-telegram-bot#54 ·
维护者通常 1 天内回复