[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93249":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},93249,"lan-file-transfer","NextWeb4\u002Flan-file-transfer","NextWeb4","Local LAN file transfer desktop app with user\u002Fgroup permissions and audit logs.","https:\u002F\u002Fnextweb4.github.io\u002F",null,"Python",148,14,6,0,23,32,58.23,"MIT License",false,"main",[],"2026-07-22 04:02:08","# LAN File Transfer\n\n局域网文件传输是一个 Windows 本地桌面工具。启动后，它会在本机开启一个 FastAPI\u002Fuvicorn HTTP 服务，并通过 Tkinter 窗口显示用户地址、管理员地址和二维码。同一 Wi-Fi 或局域网内的手机、平板和电脑可以用浏览器上传、下载和打包文件。\n\nLAN File Transfer is a local Windows desktop tool for sharing files across a LAN. It starts a FastAPI\u002Fuvicorn HTTP service from a Tkinter desktop window and shows user\u002Fadmin URLs plus QR codes so phones, tablets, and computers on the same Wi-Fi or LAN can upload, download, and zip files in the browser.\n\n## 项目类型 \u002F Project Type\n\n- Python desktop application: Tkinter GUI + FastAPI API + vanilla HTML\u002FCSS\u002FJavaScript frontend.\n- Windows packaging: PyInstaller one-file windowed executable.\n- Repository name selected for release: `lan-file-transfer`.\n- Version: `1.0.0`.\n\n## 功能特点 \u002F Features\n\n- 二进制流式保存上传文件，不压缩、不转码、不改写图片、视频、EXIF 或扩展名。\n- Preserves uploaded bytes as binary streams without compression, transcoding, EXIF changes, or extension rewriting.\n- 支持游客、普通用户和管理员三类身份；游客只能访问 `public` 组文件。\n- Supports guest, user, and admin roles. Guests can only see files in the `public` group.\n- 新保存目录自动创建默认管理员 `admin \u002F 12345678`、`public` 组和 `everyone` 组。\n- New save directories create default admin `admin \u002F 12345678`, `public`, and `everyone`.\n- 登录用户可上传文件并删除自己上传的文件；管理员可管理账户、组、文件权限、审计日志和所有文件。\n- Signed-in users can upload and delete their own files. Admins can manage accounts, groups, permissions, audit logs, and all files.\n- 文件列表支持搜索、排序、Raw 下载、单文件 zip 和批量 zip。\n- File lists support search, sort, raw download, single-file zip, and batch zip.\n- 尽量保存浏览器提供的 `File.lastModified`，Raw 下载设置 `Last-Modified`，zip entry 写入原始 mtime。\n- Attempts to preserve browser `File.lastModified`; raw downloads set `Last-Modified`, and zip entries store original mtime.\n- 审计日志记录登录、登出、上传、下载、删除、权限、账户和组变更，并递归脱敏 password、token、session、authorization、cookie、secret 字段。\n- Audit logs cover login, logout, upload, download, delete, permission, account, and group changes, with recursive redaction for password, token, session, authorization, cookie, and secret fields.\n- Web UI 默认中文，右上角可切换 English，语言状态保存到 `localStorage`。\n- The web UI defaults to Chinese, can switch to English, and stores language state in `localStorage`.\n\n## 安装方法 \u002F Installation\n\n### 使用发布版 \u002F Use a Release Build\n\n1. 从 GitHub Release 下载 `LANFileTransfer.exe` 或 `lan-file-transfer-v1.0.0-windows.zip`。\n2. 如果下载 zip，解压后运行其中的 `LANFileTransfer.exe`。\n3. Windows SmartScreen 可能提示未知发布者；本项目没有代码签名证书，不伪造数字签名。请只从项目 Release 页面下载。\n\n1. Download `LANFileTransfer.exe` or `lan-file-transfer-v1.0.0-windows.zip` from GitHub Releases.\n2. If you download the zip, extract it and run `LANFileTransfer.exe`.\n3. Windows SmartScreen may show an unknown-publisher warning. This project does not include a code-signing certificate and does not fake a digital signature. Download only from the project Release page.\n\n### 从源码运行 \u002F Run from Source\n\n```powershell\npy -m venv .venv\n.\\.venv\\Scripts\\python.exe -m pip install --upgrade pip\n.\\.venv\\Scripts\\python.exe -m pip install -r requirements.txt\n.\\.venv\\Scripts\\python.exe -m lan_transfer.desktop\n```\n\n## 使用方法 \u002F Usage\n\n1. 启动桌面程序后等待状态变成 `Running`。\n2. 用窗口中的 User URL 或二维码打开用户页。\n3. 管理员打开 Admin URL，使用默认账户 `admin \u002F 12345678` 登录，并在首次运行后立即修改管理员密码。\n4. 管理员可创建普通用户和用户组，调整文件可见组，查看审计日志。\n5. 普通用户登录后可上传文件、上传文件夹、删除自己上传的文件。\n6. 手机浏览器如不能保留 Raw 下载文件的 mtime，建议使用 zip 下载并解压。\n\n1. Start the desktop app and wait until the status is `Running`.\n2. Open the user page from the User URL or QR code.\n3. Open the Admin URL and sign in with `admin \u002F 12345678`; change the admin password after first launch.\n4. Admins can create users\u002Fgroups, change file visibility groups, and inspect audit logs.\n5. Users can upload files\u002Ffolders and delete their own uploads.\n6. If a mobile browser does not preserve mtime for raw downloads, use zip download and extract the archive.\n\n## 打包说明 \u002F Packaging\n\nThis project is a Python\u002FTkinter desktop app. The supported local package format in this repository is a Windows PyInstaller executable plus a zip archive. MSI is not generated because the project does not currently include a WiX\u002FInno\u002FNSIS installer definition.\n\n```powershell\npowershell -ExecutionPolicy Bypass -File .\\scripts\\build_exe.ps1\n```\n\nThe script installs dependencies, runs tests, and builds:\n\n```text\ndist\\LANFileTransfer.exe\n```\n\nRelease assets are prepared under `release-assets\u002F`:\n\n```text\nLANFileTransfer.exe\nlan-file-transfer-v1.0.0-windows.zip\nSHA256SUMS.txt\n```\n\n## 测试 \u002F Tests\n\n```powershell\n.\\.venv\\Scripts\\python.exe -m pytest\nnode --check .\\lan_transfer\\static\\user.js\nnode --check .\\lan_transfer\\static\\admin.js\n```\n\nCurrent coverage includes account permissions, batch user creation, group visibility, search\u002Fsort, upload integrity, mtime, download headers, zip behavior, path safety, duplicate filenames, audit rollback, desktop lifecycle, logging, and frontend contracts.\n\n## 安全说明 \u002F Security Notes\n\n- 默认监听 `0.0.0.0`，方便局域网访问，也会向可达网络暴露服务。请只在可信局域网中运行。\n- The service listens on `0.0.0.0` by default for LAN access. Run it only on trusted networks.\n- 默认密码很弱，仅用于初始化。首次运行后请修改管理员密码和新建用户密码。\n- The default password is intentionally simple for initialization. Change admin and user passwords after setup.\n- 保存目录根部控制文件名 `manifest.json`、`manifest.json.tmp`、`.lan-transfer-auth.json`、`.lan-transfer-audit.jsonl` 会被上传路径安全逻辑保留。\n- Root control filenames are reserved by upload path safety logic.\n- manifest 和 auth settings 使用隐藏随机临时文件加原子替换写盘，失败时回滚内存状态并清理临时文件。\n- Manifest and auth settings are written through hidden randomized temporary files plus atomic replacement; failures roll back memory state and clean temporary files.\n- 审计失败时，登录、登出、改密、账户、组、上传、删除和权限变更会回滚本次状态。\n- Required audit failures roll back login, logout, password, account, group, upload, delete, and permission changes.\n\n## 作者信息 \u002F Author\n\n- Author: HaoXiang Huang\n- Email: [didadida1688@gmail.com](mailto:didadida1688@gmail.com)\n- Homepage: \u003Chttps:\u002F\u002Fnextweb4.github.io\u002F>\n- GitHub: \u003Chttps:\u002F\u002Fgithub.com\u002FNextWeb4>\n- Repository: \u003Chttps:\u002F\u002Fgithub.com\u002FNextWeb4\u002Flan-file-transfer>\n\n## License\n\nMIT License. See [LICENSE](LICENSE).\n","这是一款面向局域网环境的轻量级桌面文件共享工具，专为Windows设计。它基于FastAPI提供HTTP服务、Tkinter构建本地GUI，并内置Web前端，支持通过浏览器上传\u002F下载\u002F打包文件；具备用户\u002F组权限分级（游客\u002F用户\u002F管理员）、细粒度文件操作审计日志（自动脱敏敏感字段）及原始二进制文件保真存储（不压缩、不修改EXIF或扩展名）。适用于中小团队在无公网、无NAS的办公场景下快速共享资料，如会议材料分发、临时协作文件交换、内网设备间传输等。",2,"2026-07-14 02:30:05","CREATED_QUERY"]