尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

copyparty配置实战:从一行命令到生产部署的4个关键场景

copyparty配置实战:从一行命令到生产部署的4个关键场景 copyparty配置实战从一行命令到生产部署的4个关键场景【免费下载链接】copypartyPortable file server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails all in one file项目地址: https://gitcode.com/GitHub_Trending/co/copypartycopyparty 是一个单文件的可移植文件服务器一个进程里塞进了 WebDAV、SFTP、FTP、断点续传、媒体索引和缩略图。要把 copyparty 配置玩明白其实只需要抓住两样东西卷volume的定义方式和权限字符串。下面按真实使用路径走一遍先跑起来再分权限再写配置文件最后上生产并处理排障。场景一用最短命令把文件共享跑起来最快的验证方式就是在想分享的目录下直接启动# 安装后在当前目录启动浏览器访问 http://服务器IP:8080 pip install copyparty copyparty -p 8080这一条命令就会把当前目录作为默认卷共享出去匿名可浏览、可下载。够用了。但真实需求几乎都会多一步指定共享哪个目录、挂到哪个网址。这时你会用到-vvolume参数它把磁盘上的某个文件夹投影到浏览器地址栏里格式是物理路径[:虚拟路径[:权限[:标志]]]每一段都可以省略# ./shared 目录以 /shared 出现在网址里匿名只读 copyparty -p 8080 -v ./shared:files:r # 多给一个卷/home/ed/Music 挂到 /music匿名只读 copyparty -p 8080 -v ./shared:files:r -v /home/ed/Music:music:r第二段files就是用户在网址里看到的路径第三段r是权限r单独出现表示匿名可读。-v、-u都是可重复参数想加几个卷、几个用户就写几遍。⚡️ 建议临时演示就用-v一旦卷超过两三个立刻切到配置文件——命令行会先变成一锅粥。场景二给不同同事开不同权限账号从哪来命令行用-u 用户名:密码配置文件里则写[accounts]节。两种写法等价# 命令行方式ed 和 k 两个账号 copyparty -p 8080 -u ed:123 -u k:k# 配置文件方式同一含义 [accounts] ed: 123 k: k权限字符串怎么读权限是一串字母每个字母是一种能力可以随意组合。最常用的几个r 读列目录、下载文件 w 写上传文件想看到自己传的文件还要 r m 移动挪动文件和文件夹目标位置需要 w d 删除永久删除 a 管理员能看到上传者 IP、可做配置热重载rw是最常见的组合rwmd就是读、写、移动、删除全套。完整的权限字符表定义在 copyparty/cfg.py 的permdescs里还有g只能按已知链接下载、GwG只能看到自己上传的文件这类细粒度选项做匿名收件箱场景时会用到。用 accs 给每个卷分配权限权限不是全局的而是挂在卷上的。每个卷的accs:子节里逐行写谁能做什么*代表所有人含匿名# 卷 /privk 只读ed 读写摘自官方示例 docs/example.conf [/priv] ./priv accs: r: k # 用户 k 可读 rw: ed # 用户 ed 可读写其他人完全不可见这里有个坑权限是逐卷匹配的没写到的用户对该卷就是没有权限而不是回退到全局默认值。想给某个人开权限就去他需要的那个卷的accs:里加一行。什么场景用什么配置方式三种配置入口的关系一张表定位配置方式适合场景示例冲突时优先级命令行参数临时共享、快速调试copyparty -p 8080 -v ./shared:files:r最低配置文件多用户、多卷、权限细分[global][accounts] 卷定义最高配置文件胜出环境变量容器/服务托管时定位状态目录XDG_CONFIG_HOME/etc/copyparty影响默认查找路径命令行适合起一下、看一眼、关掉了只要你的配置里出现第二个用户或第二个卷就值得花两分钟落一个配置文件。场景三把配置写进文件并持久化最小可用配置文件配置文件是 YAML 风格#注释节名:加缩进最小版本长这样[global] p: 8086 # 监听端口可写 8086, 3939 逗号分隔多个 [/] . # 卷定义物理路径为当前目录挂到网址根在这个骨架上你可以按需求叠加可选节[global] p: 8086, 3939 e2dsa # 可选启用文件索引并启动时扫描支持全局搜索 z, qr # 可选零配置发现 登录二维码 [accounts] ed: 123 k: k [/priv] ./priv accs: r: k rw: ed官方把这份完整示例放在了 docs/example.conf文件末尾还附了一行把整个配置文件翻译成命令行参数的对照是理解两者等价性的最好材料。用 % 包含拆分配置多人维护时把用户、卷拆到不同文件里主配置只留一行包含指令注意%后面有个空格# 包含单文件% /etc/copyparty.d/main.conf # 包含目录拉入该目录下所有 .conf按字母序官方示例 docs/example2.conf % copyparty.d注意被包含文件里的相对路径是相对那个被包含文件本身的位置不是相对主配置文件。这是拆分配置后最容易踩的坑用绝对路径可以绕过。配置文件查找顺序与优先级用--cfg /路径/copyparty.conf显式指定最保险不指定时copyparty 会在当前目录和~/.config/copyparty/可用XDG_CONFIG_HOME改写下查找。官方在示例里明确写了一句话配置与命令行冲突时配置文件胜出。所以我明明在命令行改了参数这类疑问先检查有没有更高优先级的配置文件在覆盖它。场景四从能跑到生产级部署常用高级卷标志卷的flags:节控制卷的行为常用的几个[/dump] ./upload-dump accs: w: * flags: e2d # 开启上传数据库文件可搜索、支持撤销上传 nodupe # 拒绝重复文件同名同内容直接拒绝 d2t # 禁用媒体解析公共上传卷建议开 maxb1g,300 # 5 分钟内最多 1 GiB限流防刷去重方向也可以反着选dedup让重复上传只留一份符号链接方式hardlink是硬链接方式。完整标志清单不要背跑copyparty --help-flags或直接查 copyparty/cfg.py 里的flagdescs字典那里按上传规则、数据库、多媒体分类列全了。热重载、TLS 与容器托管改了配置文件不用杀进程管理员账号访问?reloadcfg即可热重载用户和卷信号方式用--reload-sigUnix 下默认 USR1触发。对外暴露到公网时建议加上--tls提供 HTTPS并给/dump这类匿名可写卷配上d2t和上传限额。容器部署时推荐的组合是挂载配置文件 环境变量定位状态目录官方 compose 示例在 docs/examples/docker/basic-docker-compose/copyparty.conf 里能看到一个面向 Docker 的完整配置写法# 容器内挂载配置并显式指定状态库放 XDG 指定目录 XDG_CONFIG_HOME/config docker run -v ./my.conf:/config/cpp.conf -p 8080:8080 9001/copyparty --cfg /config/cpp.conf✅ 到这一步多用户、多卷、可搜索、限流、热重载、HTTPS生产要素齐了。场景五改了配置不生效这样排查按命中概率从高到低查1. 优先级覆盖命令行改了但配置文件里有同名项 —— 配置文件胜出 先找到实际生效的那份配置文件再谈其他 2. 相对路径基准被 % 包含的文件里写的相对路径相对它自己所在目录 3. 卷没挂上-v 第二段虚拟路径和物理路径写反了 卷的 accs 没写对用户有权限的卷和想访问的卷不是同一个 4. 端口/进程8080 被占用时换 -p同机多实例会因数据库锁冲突 panic 用 XDG_CONFIG_HOME 给第二个实例独立的配置目录 5. 标志拼写flags 拼错不会报错跑 copyparty --help-flags 核对一遍日志本身是最好的排查入口——启动时 copyparty 会打印实际加载了哪些卷和账号对着它确认配置进来了没有比猜快得多。参考资源README.md —— 快速启动与反向代理章节docs/example.conf —— 带逐行注释的完整配置示例docs/example2.conf ——%包含机制的官方示例copyparty/cfg.py —— 权限字符permdescs与全部卷标志flagdescs的源码定义回头看整篇文章绕不开的就两个核心存储卷定义-v的四段式 / 配置文件的卷节和权限字符串accs:里那一行行r、rw、rwmd。把这两个吃透命令行、配置文件、容器环境无非是它们的三种载体绝大多数 copyparty 配置场景都能应对。【免费下载链接】copypartyPortable file server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails all in one file项目地址: https://gitcode.com/GitHub_Trending/co/copyparty创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表