当前位置: 首页 > news >正文

一天一个开源项目(第40篇):copyparty - 单文件便携文件服务器,断点续传/去重/多协议/媒体索引

引言

“Portable file server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file.”

这是「一天一个开源项目」系列的第 40 篇文章。今天介绍的项目是copyparty(GitHub)。

想在内网或临时环境快速搭一个文件服务器,又不想装 Nginx、Samba 或一堆依赖?copyparty整个文件服务塞进一个文件:用copyparty-sfx.py(自解压包 + 小段 Python)或copyparty.pyz(Python zipapp)即可在任意有 Python 的机器上跑起来,零依赖(所有依赖均可选)。支持加速断点续传去重WebDAV / SFTP / FTP / TFTP,以及zeroconf媒体索引缩略图、浏览器内剪切/粘贴/重命名/批量重命名、RSS/OPDS、媒体播放、Markdown 预览、目录打包下载等,甚至支持「边上传边下载」(race the beam)。适合临时分享、内网共享、树莓派/NAS 或随身 U 盘即插即用。

为什么值得看?

  • 📦单文件部署:一个 .py 或 .pyz,无需 pip install,有 Python 就能跑
  • 断点续传:上传/下载均可续传,大文件更稳
  • 🔄去重:相同内容只存一份,省空间
  • 🌐多协议:HTTP(S)、WebDAV、SFTP、FTP(S)、TFTP、SMB/CIFS
  • 🖼️媒体与缩略图:媒体索引、缩略图、内置播放与播放列表
  • 📂浏览器即管理:切/粘/重命名、批量重命名、ZIP/TAR 打包、Markdown 预览

你将学到什么

  • copyparty 的定位与「单文件、无依赖」的设计
  • 多种运行方式:sfx、zipapp、Docker、Windows EXE、移动端
  • 核心能力:断点续传、去重、多协议、zeroconf、媒体与缩略图
  • 浏览器端功能与「race the beam」
  • 快速启动与配置思路
  • 与其它轻量文件服务的对比

前置知识

  • 本机或目标环境已安装Python(2 或 3,依版本说明)
  • 了解「文件服务器」「WebDAV」有助理解使用场景

项目背景

项目简介

copyparty是一个便携式文件服务器,核心卖点是「all in one file」:用单个可执行文件(自解压 sfx 或 Python zipapp)即可提供完整的文件服务能力,不强制任何外部依赖(可选依赖用于扩展功能)。

解决的核心问题

  • 临时或内网需要文件共享,但不想装复杂服务或一堆依赖
  • 需要断点续传、去重、多协议(WebDAV/FTP/SFTP 等)的轻量方案
  • 希望在树莓派、NAS、U 盘或任意有 Python 的环境「即插即用」
  • 需要浏览器内直接管理文件(上传、下载、重命名、打包、预览)

面向的用户

  • 需要内网/临时文件共享的个人或小团队
  • 喜欢「单文件绿色软件」的极简派
  • 需要 WebDAV/FTP/SFTP 等协议统一入口的开发者
  • 在嵌入式或资源受限设备上跑文件服务的人

作者/团队介绍

  • 作者/仓库9001(GitHub)
  • 镜像:代码同时托管于 Codeberg、GitLab
  • 官网与下载:copyparty.eu

项目数据

  • GitHub Stars: 约 4.3 万+
  • 🍴Forks: 0(仓库策略为不开放 fork,以镜像站为主)
  • 📦发布:通过 GitHub Releases 与 copyparty.eu 提供 sfx、zipapp、英文精简版等
  • 📄License: 开源(具体以仓库为准)
  • 🌐官网/文档:copyparty.eu、CLI 帮助
  • 🎬演示:只读 Demo a.ocv.me/pub/demo、功能展示视频

技术栈:Python(2 或 3,依版本)、标准库为主,依赖均可选;支持 zipapp、自解压 sfx、Docker、Windows EXE、Android/iOS 等运行方式。


主要功能

核心作用

copyparty 的核心作用是:在任意有 Python 的环境用单文件启动一个功能完整的文件服务器,提供:

  1. HTTP(S) Web 界面:浏览器内浏览、上传、下载、剪切/粘贴、重命名、删除、批量重命名、目录打包(ZIP/TAR)
  2. 断点续传:上传与下载均支持续传,大文件更可靠
  3. 去重:相同内容只存一份,节省空间
  4. 多协议访问:WebDAV、SFTP、FTP(S)、TFTP、SMB/CIFS,同一套存储多协议访问
  5. zeroconf:局域网内自动发现服务(如 mDNS)
  6. 媒体与索引:媒体索引、缩略图、内置播放器与播放列表
  7. 扩展能力:RSS、OPDS(电子书)、Markdown 预览等

使用场景

  1. 内网临时共享

    • 会议室/家里多设备传文件,无需 U 盘或云盘
  2. 开发/调试环境

    • 本机或虚拟机快速起一个 WebDAV/FTP 服务,供其它工具或脚本访问
  3. 树莓派/NAS 轻量文件服务

    • 单文件拷贝即用,无需复杂安装,配合 zeroconf 局域网发现
  4. 随身 U 盘/移动设备

    • 在支持 Python 的 Android/iOS 或 Windows 上运行,即插即用
  5. 只读展示/演示

    • 只读卷挂载,对外提供浏览与下载(如 Demo)

快速开始

前提:本机已安装 Python(具体版本见项目说明)。

方式一:自解压 sfx(推荐,最简单)

从 copyparty.eu 或 GitHub Releases 下载copyparty-sfx.py(或py链接对应的 sfx 文件),然后:

# 赋予执行权限(Linux/macOS)chmod+x copyparty-sfx.py# 直接运行,默认会在当前目录提供文件服务./copyparty-sfx.py# 或指定要共享的目录与端口./copyparty-sfx.py-e2/path/to/share

浏览器访问提示的地址(如http://0.0.0.0:3923)即可使用。更多参数见 Quickstart 与 CLI helptext。

方式二:Python zipapp(.pyz)

下载copyparty.pyz(或英文精简版copyparty-en.pyz),用 Python 运行:

python3 copyparty.pyz-e2/path/to/share

方式三:Docker / Windows EXE / 移动端

  • Docker:见仓库内 scripts/docker
  • Windows EXE、Android、iOS 等:见 GitHub 说明 与 copyparty.eu

核心特性

  1. 单文件、无强制依赖

    • sfx 或 zipapp 一个文件即可运行;所有额外依赖均为可选
  2. 加速断点续传

    • 上传与下载均支持断点续传,大文件与不稳定网络下更可靠
  3. 去重(dedup)

    • 相同内容只存一份,减少磁盘占用
  4. 多协议

    • HTTP(S)、WebDAV、SFTP、FTP(S)、TFTP、SMB/CIFS,同一数据多协议访问
  5. zeroconf

    • 局域网内自动发现,无需记 IP 或端口(视配置)
  6. 媒体索引与缩略图

    • 自动索引媒体文件,生成缩略图,支持内置播放器与播放列表
  7. 浏览器内管理

    • 剪切/粘贴、重命名、删除、批量重命名、RSS、OPDS、Markdown 预览、目录打包为 ZIP/TAR
  8. 「Race the beam」

    • 文件尚在上传时即可开始下载,适合实时转存或流式场景
  9. 只读卷与权限

    • 可配置只读共享、访问控制等(详见 CLI 与文档)
  10. 多平台

    • Windows EXE、Docker、Android、iOS 等多种运行方式

项目优势

对比项copyparty传统 Nginx 静态/WebDAV云盘/NAS 套件
部署单文件,有 Python 即跑需安装配置需账号或设备
依赖无强制依赖依赖 Web 服务器等依赖厂商服务
断点续传✅ 内置需自行配置视产品而定
去重✅ 内置部分产品有
多协议WebDAV/FTP/SFTP/TFTP/SMB常需多服务组合视产品而定
便携✅ 单文件拷贝即用
媒体/缩略图✅ 内置需额外方案视产品而定

为什么选 copyparty?

  • 单文件、零依赖,适合临时环境与「随手搭一个」的场景
  • 断点续传与去重开箱即用,大文件与重复文件友好
  • 多协议统一入口,一个服务满足 Web、WebDAV、FTP、SFTP 等需求
  • 浏览器即可管理,无需额外客户端(可选客户端协议访问)
  • 有官方 Demo 与视频,上手快

项目详细剖析

架构与运行方式

  • sfx(自解压):一个文件内包含 tar.gz 与一小段 Python;运行时自解压并启动服务,对用户透明。
  • zipapp(.pyz):符合 Python zipapp 格式的 zip,由 Python 解释器直接执行,无需解压。
  • 服务进程:单进程提供 HTTP(S)、WebDAV 等;可选开启 SFTP/FTP/TFTP/SMB 等(视编译/打包选项)。

数据流:客户端通过 HTTP/WebDAV/FTP 等访问 → copyparty 读写本地目录 → 可选去重、缩略图、索引等后返回结果。

项目结构(上游仓库)

  • 源码与脚本分布在仓库中;提供给最终用户的是打包后的单文件(sfx 或 pyz),因此日常使用无需关心内部目录结构。
  • 文档与 CLI 说明见 copyparty.eu、GitHub README、CLI。

配置与参数

  • 通过命令行参数配置共享目录、端口、只读、认证、zeroconf、协议开关等。
  • 完整选项见 copyparty.eu/cli 与 GitHub Quickstart。

安全与使用注意

  • 默认可能无认证,内网或临时使用需注意不要暴露到公网。
  • 生产或公网使用时应查阅文档中的认证、HTTPS、绑定地址等配置。

项目地址与资源

官方资源

  • 🌟GitHub: https://github.com/9001/copyparty
  • 🌐官网与下载: https://copyparty.eu/
  • 📚Quickstart: GitHub#quickstart
  • 📚CLI 参数: https://copyparty.eu/cli
  • 🎬只读 Demo: https://a.ocv.me/pub/demo/
  • 🎬功能展示视频: YouTube
  • 🐛Issues: GitHub Issues

镜像与其它格式

  • Codeberg: codeberg.org/9001/copyparty
  • GitLab: gitlab.com/9001/copyparty
  • Beta 版本: copyparty.eu/beta/

适用人群

  • 需要内网或临时文件共享、不想装复杂服务的个人或小团队
  • 喜欢单文件、绿色、便携工具的用户
  • 需要WebDAV/FTP/SFTP等协议统一入口的开发者
  • 树莓派、NAS、U 盘或移动设备上跑轻量文件服务的人

欢迎来我中的个人主页找到更多有用的知识和有趣的产品

http://www.jsqmd.com/news/436906/

相关文章:

  • 文件的操作
  • 博冠8K摄像机的发展历程
  • 当招商遇见投资:在达茂旗,一场关于“共投共建”的实践正在改写发展逻辑 - 资讯焦点
  • 会员管理系统哪个比较好用 - 码云数智
  • JBoss常见的漏洞原理
  • 靠谱的品牌全案营销策划公司推荐:奇正沐古如何盘活项目? - 资讯焦点
  • 详细介绍:从 TLS 到 Kubernetes PKI:一条证书链如何支撑整个集群安全(问题合集)
  • 和小鹅通一样的平台有哪些 - 码云数智
  • GEO 优化专家罗小军:凭全球七大认证与 36 项软著确权 AI 时代获客主权 - 资讯焦点
  • 企业微信ipad协议的设备指纹仿真与反检测策略
  • GEO优化专家推荐:2026年度领军人物榜单发布,罗小军凭硬核实力蝉联榜首 - 资讯焦点
  • Linux软件编程——TCP通信
  • P10218 [省选联考 2024] 魔法手杖 题解
  • 知识付费小程序怎么做,教育培训小程序搭建 - 码云数智
  • 会员管理系统软件哪个好 - 码云数智
  • 查询增强常用的方法有4种
  • 上海品牌全案营销策划公司推荐(2026权威版) - 资讯焦点
  • docx2md-picgo:Word 文档图片一键上传图床工具
  • DMF3938-257,低正向电压型肖特基混频二极管
  • 网站搭建教程,怎样建立一个自己的网站 - 码云数智
  • 盲盒潮玩一番赏小程序开发深度分析
  • DDC2354,零偏压硅肖特基势垒探测器二极管
  • 微信小程序 map组件marker标记如何将重要的放在顶层?
  • Java生态技术栈深度解析:从传统开发到AI驱动的现代化转型
  • 英语词汇的“交通网”:一词多义、隐喻与语义扩展
  • Vue2 web浏览器打印模板
  • 国内靠谱的橡胶木厂家 - 品牌推荐(官方)
  • 微信小程序map地图组件 点击marker事件和点击地图-阻止事件冒泡的解决办法
  • 数据主权与算力围栏:为何你应该为沁言 Claw 多付那 50 元?——一份面向科研从业者的架构评测 - 沁言学术
  • 二次重排序GBDT的学习示例