基于数据的文件 URI 误解了名称中的保留字符
作者: RaycarlLei创建于 2026年9月16日更新于 2026年9月16日
标签bug
File(data=., name=.)'不保留含有URI保留字符的文件名。 report#draft.pdf'等名称产生file:///report#draft.pdf',其路径为/report',其片段为draft.pdf'。 文学百分比的逃出也被重新解释:报告% 20draft.pdf'代之以`报告草案.pdf'。
从 urlib.parse 导入未引用, urlsplit
从 fastmcp.utilities.types 从文件导入
用于在 ["report#draft.pdf","report?draft.pdf","report%20draft.pdf"中的名称 :
uri=文件(data=b"report data",格式="pdf",名称=name.to resource content (.resource.uri).
print(名称, “->”, uri, “->”, unquote( urlsplit (uri. path)) )解码路径应保留所提供的文件名 。 例如,第一个URI应该是`file:///report%23draft.pdf'。 当一个工具返回“文件”时,“Client.call tool()”会返回同样的错误的URI。
现主机"490049f",快取MCP 4.0.4,Python 3.12.10,Windows. 由Codex编写.
内容来源: PrefectHQ/fastmcp