
Data Formulator 在多人服务器部署时 Connect Local Folder 为什么不可用【免费下载链接】data-formulator Data Formulator is an interactive AI-powered data analysis system makes it easy to connect, explore and visualize data.项目地址: https://gitcode.com/GitHub_Trending/da/data-formulator如果你在一台多人共享的服务器上部署了 Data Formulator进入 Load Data 页面后会发现Connect Local Folder入口不见了或者连接本地目录的选项无法使用。先说结论这不是依赖缺失、配置遗漏或版本问题而是 Data Formulator 有意施加的部署限制——local_folder数据源只在本地单用户模式可用在多人服务器或云部署中会被显式禁用。本文基于项目文档和源码说明这条限制的判定条件并给出核对当前部署状态的具体方法。数据源连接指南 对这一行为有明确说明Connect Local Folder只在本地模式可用。它允许 Data Formulator 直接读取本机某个目录中的文件适合桌面或个人使用场景。在多人服务器或云部署中本机目录连接会被禁用避免用户读取服务器上的任意文件。为什么多人部署要禁用它local_folder的构造参数包含用户可控的本机目录路径如root_dir。服务端路径安全开发规范 对这类读取宿主文件系统的 Loader 规定了硬性要求它只能在本地单用户模式使用并且必须在部署限制机制中注册禁用规则。原因是多人服务器上每个登录用户都可能传入自己指定的目录路径如果不禁用任何用户都可以借由这个数据源浏览和读取服务器上的任意文件。因此禁用发生在服务启动阶段而不是用户点击连接时才拦截。在 data_loader 注册模块 中_enforce_deployment_restrictions()的判定逻辑是def _enforce_deployment_restrictions() - None: Disable local-only loaders in multi-user mode. backend os.environ.get(WORKSPACE_BACKEND, local) if backend ! local and local_folder in DATA_LOADERS: del DATA_LOADERS[local_folder] DISABLED_LOADERS[local_folder] ( local_folder connector is disabled in multi-user mode (WORKSPACE_BACKEND ! local) ) _log.info(local_folder loader disabled: WORKSPACE_BACKEND%s, backend)也就是说不等式WORKSPACE_BACKEND ! local成立时默认值是local显式设为其他值如azure_blob、ephemeral时即为多人/云端部署local_folder会在启动时从可用注册表DATA_LOADERS中移除并写入禁用提示。如何确认当前部署确实处于多人模式判断顺序如下三步都能对应到文档或源码中的实际输出。1. 检查WORKSPACE_BACKEND环境变量。在部署机器上确认该进程的环境变量取值。未设置时默认为local本地模式local_folder保留取值为azure_blob、ephemeral等其他值时即为多人模式local_folder被禁用。工作区模式的完整说明见 workspace 存储架构文档。2. 请求GET /api/data-loaders查看disabled字段。这个 discovery 接口是创建连接表单的数据来源连接指南的常见问题一节 也建议管理员用它排查“为什么看不到某种数据源”。多人模式下响应中会出现{ disabled: { local_folder: { install_hint: local_folder connector is disabled in multi-user mode (WORKSPACE_BACKEND ! local) } } }注意字段名是install_hint但这里承载的是禁用原因而非安装命令——看到这条提示就确认了入口缺失是预期行为。另外/api/data-loaders对local_folder还有一层前端可见性控制发现接口在构建列表时会检查是否处于本地模式非本地模式下直接跳过该条目见 data_connector.py所以多人部署下 Add Connection 列表里根本不会出现它。local_folder本来就不走 Add Connection 流程它有独立的本地目录连接入口入口本身在多人模式下被隐藏。3. 查看服务启动日志。禁用发生时有一条 info 日志local_folder loader disabled: WORKSPACE_BACKEND实际取值日志中的取值就是当时生效的WORKSPACE_BACKEND可与第 1 步对照。强行创建 local_folder 连接会发生什么即使绕过界面直接调用连接创建接口请求也会被拒绝。部署限制测试 覆盖了这一行为在WORKSPACE_BACKEND为azure_blob或ephemeral时向POST /api/connectors提交loader_type: local_folder返回的是结构化错误而非连接成功{ status: error, error: { code: INVALID_REQUEST, message: ... } }测试断言message中包含 Unknown即该 loader type 在多人模式下已不是注册表中的已知类型。这说明禁用是注册表层面的而不是某个界面开关。在多人服务器上如何替代本地目录读取local_folder定位是“直接读取本机某个目录中的文件适合桌面或个人使用场景”在多人部署中没有对应的替代开关——文档没有提供“在多人模式放行 local_folder”的配置项也不应试图通过修改注册表绕过路径安全规范将宿主文件系统 Loader 的多用户禁用列为测试必检项见 test_local_folder_deployment.py 和 test_local_folder_loader.py。实际可用的替代路径数据在数据库PostgreSQL、MySQL、MSSQL 等、对象存储S3、Azure Blob或 BI 系统Superset中时走 Load Data 页面的对应连接卡片流程与 数据源连接指南 第 2、4 节一致数据是零散文件时使用本地数据入口中的上传文件方式把文件交给当前 workspace而不是让服务端进程直连某个目录。反过来如果你的场景确实是单机单用户桌面或个人使用保持WORKSPACE_BACKEND为默认值locallocal_folder会正常出现在可用数据源中——这一点同样由 部署限制测试 中的本地模式用例保证WORKSPACE_BACKENDlocal时local_folder保留在DATA_LOADERS中且不在禁用列表。边界说明判定条件是服务进程的环境变量WORKSPACE_BACKEND不是前端配置前端看不到入口是后端禁用后的结果表现。该限制针对读取宿主文件系统的 Loader 一类其他连接器数据库、S3、Superset 等在多人模式下不受影响只要对应 Python 依赖已安装。local与多人模式对应的隔离要求如沙箱配置属于部署安全规范的另一部分见 路径安全开发规范 第 7 节本文不再展开。【免费下载链接】data-formulator Data Formulator is an interactive AI-powered data analysis system makes it easy to connect, explore and visualize data.项目地址: https://gitcode.com/GitHub_Trending/da/data-formulator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考