现象
在FastGPT 4.8.1版本中,调用知识库上传文件接口/api/core/dataset/collection/create/localFile时,使用类似curl --location --request POST 'xxx/api/core/dataset/collection/create/localFile' --header 'Authorization: Bearer xxx' --form 'file=@"/data/123.txt"' --form 'data="{\"datasetId\":\"66503e0246a5d28dd9a1353c\",\"parentId\":null,\"trainingType\":\"chunk\",\"chunkSize\":512,\"chunkSplitter\":\"\",\"qaPrompt\":\"\",\"metadata\":{}}"'的POST请求提交本地文件后,系统返回报错信息{"code":501000,"statusText":"unAuthDataset","message":"core.dataset.error.unAuthDataset","data":null}。
可能原因
该报错对应官方提示为core.dataset.error.unAuthDataset,字面含义为无权限访问目标数据集,可能的触发场景包括授权令牌无效、令牌对应账号无该数据集的操作权限、datasetId参数指向不存在或不属于当前账号的数据集、请求参数格式错误等,具体原因需结合实际部署环境进一步确认。
排查步骤
- 检查请求头中携带的
Authorization: Bearer令牌是否有效,确认该令牌对应的账号拥有目标数据集的创建、上传权限。 - 核对请求表单中的
datasetId参数,确保其与系统中实际存在的数据集ID完全一致,且该数据集的归属账号与当前授权账号匹配。 - 确认请求的接口路径
/api/core/dataset/collection/create/localFile无拼写错误,且与系统提供的官方接口路径一致。 - 检查请求表单中的
data参数的JSON结构是否正确,无语法错误或格式问题。 - 确认上传的本地文件格式符合系统支持的要求,具体支持的文件格式需按实际环境确认。
解决与验证
针对排查出的具体问题分别进行解决:若授权令牌无效或无对应操作权限,更换为有效且拥有目标数据集权限的令牌;若datasetId参数错误,修正为系统中实际存在且归属当前账号的数据集ID;若接口路径存在拼写错误,调整为官方指定的正确接口地址;若data参数的JSON格式有误,修正为符合要求的JSON结构。验证方式为重新执行完整的上传文件请求,确认返回结果中无501000错误代码,且文件成功上传至指定的数据集内。