
Python copyparty 是一款单文件、极轻量级文件服务器。它仅需一个 Python 脚本,就能将任何具备 Python 环境的设备——无论是老旧电脑、树莓派,还是云服务器——瞬间转变为功能齐全的文件中心。本文介绍 copyparty 的核心特点、适用场景,并通过丰富的代码示例演示其部署与高阶使用方法。
copyparty 的设计哲学是“小而强大”。它并非臃肿的企业级存储系统,而是一个专注于高效、便捷文件服务的工具,具备以下突出优势:
1、极致轻量与跨平台:整个程序就是一个独立的 Python 脚本,无需安装依赖或复杂配置。它可以在 Windows、Linux、macOS 乃至树莓派上无缝运行,启动速度极快,资源占用极低。
2、可靠的传输体验:全面支持 HTTP 协议下的上传与下载断点续传。网络中断后可自动从断点继续,无需重新传输整个文件,并内置文件完整性校验与重复检测机制。
3、丰富的文件预览:直接在 Web 界面中预览图片、播放音视频、查看 PDF 和文本文件内容,超越了传统的纯目录列表浏览方式,极大提升了使用便利性。
4、灵活的多协议访问:除了核心的 Web 界面,还支持通过 FTP、WebDAV、Rclone、Aria2 等协议进行文件访问与管理,便于集成到现有工作流中。
5、实用的权限管理:支持设置访问密码、为不同目录配置只读或可写权限、限制单文件上传大小、控制并发客户端数量等,足以满足家庭共享或团队协作的基本安全需求。
copyparty 非常适合以下对轻量、便捷有要求的场景:
1、家庭个人云:在闲置的旧电脑或树莓派上运行,用于家庭内网共享照片、视频给智能电视、平板或手机,替代商业云服务,保护隐私且无流量限制。
2、团队内部共享:在开发或运维团队中,快速搭建一个临时服务器来共享构建产物、日志文件、测试数据或文档合集,比使用即时通讯工具传输大型文件更高效稳定。
3、开发与测试环境:作为临时的文件服务器,用于应用测试、素材管理、静态资源托管,用完即关,不占用系统资源。
4、个人备份中转站:结合 Rclone 等工具,将 copyparty 服务的目录作为备份目的地,实现文档、代码和配置文件的自动化同步与版本管理。
5、教育或 workshop 材料分发:在培训、讲座或工作坊中,快速搭建一个本地文件服务器,供学员下载课件、软件和数据集,避免依赖外网或 U 盘拷贝。
6、物联网设备文件管理:在树莓派等嵌入式设备上运行,通过 Web 界面或 WebDAV 远程管理设备上的配置文件、日志和采集数据。
copyparty 是一个单文件 Python 脚本。你可以直接从其 GitHub 仓库发布页面下载最新的可执行文件(通常名为 copyparty-sfx.py)。
# 使用 curl 下载最新版本(请确保链接为最新)
curl -L -o copyparty-sfx.py https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py
# 或使用 wget
wget -O copyparty-sfx.py https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py假设希望将本地的 /home/user/shared 目录通过 copyparty 共享出去。
# 为脚本添加执行权限(Linux/macOS)
chmod +x copyparty-sfx.py
# 最简单的启动命令,共享指定目录
python copyparty-sfx.py /home/user/shared执行后,copyparty 会默认在 3923 端口启动服务,并输出访问地址。打开浏览器,访问 http://你的设备IP:3923 即可看到文件列表界面。
通过命令行参数,可以灵活配置 copyparty。以下是一些常见用例的启动命令:
# 在 8080 端口启动,并绑定到所有网络接口(允许同局域网其他设备访问)
python copyparty-sfx.py /home/user/shared -p 8080 -i 0.0.0.0
# 仅监听本地回环地址(仅本机可访问,适合安全调试)
python copyparty-sfx.py /home/user/shared -i 127.0.0.1# 为根目录设置读写密码为 “mysecret”
python copyparty-sfx.py /home/user/shared -a ":rw:mysecret"
# 设置只读密码为 “viewonly”,无密码不可访问
python copyparty-sfx.py /home/user/shared -a ":r:viewonly"# 共享两个目录,并设置不同权限
# /public 目录只读,无需密码
# /private 目录需要密码 “team123” 才能读写
python copyparty-sfx.py /home/user/public ":r" /home/user/private ":rw:team123"
# 更精细的权限控制:为不同用户设置不同目录权限
python copyparty-sfx.py \
/home/user/docs ":r:guest" \
/home/user/uploads ":rw:editor" \
/home/user/admin ":rw:admin"# 使用 -e 参数启用 TLS,需要提供证书和密钥文件路径
python copyparty-sfx.py /home/user/shared -e /path/to/cert.pem /path/to/key.pem
# 结合自定义端口
python copyparty-sfx.py /home/user/shared -p 443 -e /path/to/cert.pem /path/to/key.pem# 限制单文件最大为 500MB,最大并发客户端为 10 个
python copyparty-sfx.py /home/user/shared -z 500m -y 10可以结合 nohup 或创建 systemd 服务单元,实现开机自启和后台运行。
# 使用 nohup 简单后台运行,日志输出到 copyparty.log
nohup python copyparty-sfx.py /home/user/shared -p 3923 > copyparty.log 2>&1 &
# 使用 systemd 创建持久化服务(示例服务单元文件)
sudo tee /etc/systemd/system/copyparty.service <<EOF
[Unit]
Description=Copyparty File Server
After=network.target
[Service]
Type=simple
User=yourusername
WorkingDirectory=/home/yourusername
ExecStart=/usr/bin/python3 /home/yourusername/copyparty-sfx.py /home/yourusername/shared -p 3923 -i 0.0.0.0
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# 启用并启动服务
sudo systemctl enable copyparty
sudo systemctl start copyparty启动成功后,除了在浏览器中上传、下载、预览文件外,还可以通过以下方式访问:
1、WebDAV 客户端访问:
http://你的IP:端口/webdav/davfs2 挂载或 rclone 连接2、使用 rclone 同步:
# 配置 rclone remote
rclone config
# 选择 WebDAV 类型,地址为 http://你的IP:端口/webdav/
# 然后即可使用 rclone copy/sync 等命令同步文件3、移动端访问:
4、FTP 客户端访问:
Python copyparty 以其简洁的设计、实用的功能,为轻量级文件共享需求提供了一个优雅而强大的解决方案。它显著降低了自建文件服务器的门槛,让数据掌控权真正回归用户手中。无论是用于临时的文件交换、团队协作,还是作为长期运行的家庭轻 NAS,copyparty 都以其极低的资源消耗和极高的灵活性,成为许多场景下的理想选择。
“无他,惟手熟尔”!有需要的用起来!
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!