my-lan-share

中文文档
0.1.0发布于 2026/11/04MITES Module零依赖

局域网 HTTP 文件共享插件:启动一个本机 HTTP 服务器,手机浏览器可通过带 token 的链接浏览文件列表、下载文件、上传文件。

中文使用文档
文档目录13 节
  1. 功能
  2. 安装
  3. 方式一:从 npm 安装(推荐,所有人免费可用)
  4. 方式二:从本地目录 / tgz 安装(离线分发)
  5. 验证安装
  6. 使用
  7. 第一步:启动共享服务
  8. 第二步:在手机上访问
  9. 第三步:停止共享
  10. 安全说明
  11. 文件结构
  12. 发布到 npm(维护者)
  13. 注意事项

my-lan-share:局域网 HTTP 文件共享插件

在同一局域网内,用手机浏览器访问电脑上共享的文件夹,支持 浏览文件列表、点击下载、上传文件到电脑。

本插件纯粹使用 Node.js 内置模块(http, fs, path 等),不引入任何第三方依赖。


功能

功能说明
start_http_share启动局域网 HTTP 文件共享服务器,共享指定目录
stop_http_share关闭当前运行的共享服务器
随机 4 位数字 Token每次启动生成,所有请求必须在 URL 带上 ?token=xxxx
文件列表与下载手机浏览器打开共享链接,可浏览子目录、点击文件下载
文件上传手机浏览器通过 <input type="file"> 上传文件到电脑
侧边栏面板显示运行状态、访问链接、共享目录、Token,带“停止服务”按钮
路径安全边界严格限制只能访问共享根目录之内的文件,禁止 .. 越权访问

安装

方式一:从 npm 安装(推荐,所有人免费可用)

插件发布到 npm 后,任何安装了 DSH 的人都可以一条命令安装:

# DSH Desktop 使用 desktop profile
dsh plugin --profile desktop add my-lan-share

# 如果是 `dsh web` 模式,改用 web profile
dsh plugin --profile web add my-lan-share

方式二:从本地目录 / tgz 安装(离线分发)

# 直接从源码目录安装
& "C:\Users\p'c\AppData\Local\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "C:\path\to\my-lan-share"

或者先打包再分发(目标机不需要 Node 工具链):

npm pack          # 生成 my-lan-share-0.1.0.tgz
dsh plugin --profile desktop add "C:\path\to\my-lan-share-0.1.0.tgz"

安装后必须完全退出并重启 DSH Desktop(托盘 → 退出,然后重新启动)。

重启后,右侧边栏会多出「局域网文件共享(my-lan-share)」标签页,在对话框中也能调用 start_http_share / stop_http_share。

验证安装

# 1) 检查插件是否已加载(Desktop 是 desktop profile)
Select-String my-lan-share "$env:APPDATA\dsh-desktop\harness\profiles\desktop\package.json"

# 2) 检查 lib 文件是否存在
Test-Path "$env:APPDATA\dsh-desktop\harness\profiles\desktop\node_modules\my-lan-share\lib\index.js"

使用

第一步:启动共享服务

在 DSH 对话框中,让 agent 调用 start_http_share 工具,传入要共享的绝对目录路径:

start_http_share({ dirPath: "F:\\测试文件" })

成功后,agent 会返回类似如下的信息:

HTTP 文件共享已启动。
共享目录:F:\测试文件
本地地址:http://127.0.0.1:49152/?token=7342
局域网访问链接(在手机浏览器打开):http://192.168.1.23:49152/?token=7342
访问令牌:7342

把 局域网访问链接(例如 http://192.168.1.23:49152/?token=7342)发到手机上,在同一 Wi-Fi 下用手机浏览器打开即可访问。

💡 端口是系统自动分配的,每次启动可能不同。Token 是 4 位随机数字,每次启动都会变化。

第二步:在手机上访问

  1. 确保手机与电脑在同一 Wi-Fi 局域网下。
  2. 手机浏览器打开返回的完整链接(必须带上 ?token=xxxx)。
  3. 页面会显示:
    • 访问令牌(4 位数字)
    • 文件列表:可进入子目录、点击“上级目录”返回、点击文件名下载
    • 上传表单:选择手机上的文件,点击“上传”发送到电脑的共享目录

第三步:停止共享

不再需要时,调用 stop_http_share 工具关闭服务器:

stop_http_share({})

或在 DSH 右侧边栏的 my-lan-share 标签页中,点击“停止服务”按钮。


安全说明

  1. 路径边界控制:服务器只允许访问 dirPath 指定的共享根目录及其子目录。任何包含 .. 或试图越出根目录的请求都会被拒绝(返回 403)。
  2. Token 保护:每个请求必须在 URL 中携带正确的 ?token=xxxx,否则返回 401 未授权。Token 每次启动随机生成,不要将链接发给不可信的人。
  3. 上传限制:单个文件上传大小上限为 50 MB。
  4. 仅限局域网:服务器绑定 0.0.0.0,同一局域网内知晓 Token 的设备都可以访问。在不可信网络(如公共 Wi-Fi)下请谨慎使用。

文件结构

my-lan-share/
├── package.json              # 插件元数据
├── cordis.patch.yml          # bundle patch,注册到 profile
├── README.md                 # 本说明文档
├── LICENSE                   # MIT 许可证
└── lib/
    ├── index.js              # Host 半:HTTP 服务器、路径安全、apply 入口
    ├── tools.js              # Agent 工具:start_http_share / stop_http_share
    ├── client.js             # 浏览器半:侧边栏面板(状态、链接、停止按钮)
    ├── server/
    │   └── panelRoutes.js    # 面板路由(查询状态、停止服务)
    └── core/
        └── log.js            # 日志工具

发布到 npm(维护者)

打包内容已通过 npm pack --dry-run 校验(LICENSE / README / cordis.patch.yml / lib/**,共 9 个文件)。

cd my-lan-share

# 一次性:注册或登录 npm 账号(免费)
npm adduser --registry https://registry.npmjs.org

# 发布公开包(所有人可免费安装)
npm publish --access public --registry https://registry.npmjs.org

# 之后更新版本再发布
npm version patch
npm publish --access public --registry https://registry.npmjs.org

本机默认 registry 是 https://registry.npmmirror.com(只读镜像,不能发布), 所以发布时必须显式加 --registry https://registry.npmjs.org。 发布后约几分钟 npmmirror 会同步,国内用户也能加速安装。


注意事项

  • 端口由操作系统自动分配,每次启动可能不同,请以工具返回的完整链接为准。
  • 共享目录必须是本机绝对路径,且当前 DSH 进程对该目录有读写权限。
  • DSH Desktop 安装插件后必须重启才能生效。
  • 如果防火墙拦截了该端口,手机将无法连接,请在 Windows 防火墙中放行对应端口或允许 Node.js 程序通过防火墙。

版本与发布记录

my-lan-share 共发布 2 个版本,首次发布于 2026/11/04;过去 12 个月发布了 2 个版本。

版本发布日期距今
0.1.0latest2026/11/04今天
0.0.0-stage2026/11/04今天

关于 my-lan-share 的常见问题

my-lan-share 是什么?

局域网 HTTP 文件共享插件:启动一个本机 HTTP 服务器,手机浏览器可通过带 token 的链接浏览文件列表、下载文件、上传文件。

如何安装 my-lan-share?

在项目目录运行 npm install my-lan-share,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deepseek-ai/cordis(^4.0.2)、@deepseek-ai/dsh-tools(>=0.1.5)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

my-lan-share 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/my-lan-share 是否存在。

my-lan-share 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

my-lan-share 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^22.19.0 || >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

my-lan-share 可以商用吗?

my-lan-share 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

my-lan-share 还在维护吗?

最新版本 0.1.0 发布于 2026/11/04(今天);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/11/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。