ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

copyparty 在 Windows 上部署实战:配置文件详解与 NSSM 服务化完整指南

copyparty 在 Windows 上部署实战:配置文件详解与 NSSM 服务化完整指南 copyparty 在 Windows 上部署实战配置文件详解与 NSSM 服务化完整指南【免费下载链接】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 官方在 docs/examples/windows.md 中提供了一份在 Windows 上运行 copyparty 的完整示例涵盖三种部署形态控制台前台运行、copyparty.exe单文件运行、以及copyparty-sfx.py Python 解释器运行并可选地通过 NSSM 注册为开机自启的 Windows 服务。本文以该文档为主线完整继承其配置文件示例与操作步骤并结合仓库源码解释每个配置项lo、e2dsa、e2ts、z、p、theme、lang、accs权限位在 copyparty 内部是如何被解析和生效的帮助读者从零搭建一个带索引、缩略图、Zeroconf 发现和三卷权限管理的局域网文件服务。准备工作获取可运行文件与 FFmpeg文档首先指出Windows 上运行 copyparty 需要二选一copyparty.exe打包好的单文件可执行程序开箱即用、功能更完整copyparty-sfx.py体积更小、更安全的自解压 Python 脚本需要额外安装 Python 3 运行环境。两者的取舍会影响后续 NSSM 注册服务的命令形式后文会展开。其次文档强烈建议下载 FFmpeggit 完整构建包并把ffmpeg.exe和ffprobe.exe放入 PATH例如C:\Windows\System32\。FFmpeg 是 copyparty 多媒体的后端依赖启用后带来三项能力缩略图生成图片/音频/视频缩略图音频转码浏览器播放前的按需转换音乐元数据索引让专辑名、曲名等标签可被搜索。源码层面可以印证这一点-e2t*系列的多媒体标签索引artist/title 等依赖 ffprobe 提取标签相关逻辑位于 copyparty/up2k.py 的标签扫描流程中而缩略图/转码相关的配置项dthumb、th_qv、convt等定义在 copyparty/cfg.py 的参数帮助表中。仓库还附带了一个 Windows 环境修复脚本 contrib/windows/copyparty-ctmp.bat用于在系统环境变量TMP损坏时通过cmd /v /c set TMP\tmp copyparty.exe启动 copyparty.exe——这是 Windows 部署中一个容易踩到的坑。编写配置文件文档建议在记事本中把下面的配置保存为c:\users\you\documents\party.conf。这是 copyparty 的标准 ini 风格配置文件包含[global]全局参数、[accounts]账号表以及三个卷定义[global] lo: ~/logs/cpp-%Y-%m%d.xz # log to c:\users\you\logs\ e2dsa, e2ts, z # sets 3 flags; see explanation p: 80, 443 # listen on ports 80 and 443, not 3923 theme: 2 # default theme: protonmail-monokai lang: nor # default language: viking [accounts] # usernames and passwords kevin: shangalabangala # kevins password [/] # create a volume available at / c:\pub # sharing this filesystem location accs: # and set permissions: r: * # everyone can read/download files, rwmd: kevin # kevin can read/write/move/delete [/inc] # create another volume at /inc c:\pub\inc # sharing this filesystem location accs: # permissions: w: * # everyone can upload, but not browse rwmd: kevin # kevin is admin here too [/music] # and a third volume at /music ~/music # which shares c:\users\you\music accs: r: * rwmd: kevin配置文件解析的入口在 copyparty/authsrv.py。从源码结构看解析器按段识别[global]、[accounts]、[groups]、[/卷名]以及卷下的accs:/flags:子段见 copyparty/authsrv.py#L1408-L1459[global]段接受任意命令行参数dash 可省略[accounts]段要求每行是username: password[/xxx]卷定义段的第一行必须是共享的本地文件系统路径否则会报错the first line after [/xxx] must be a filesystem path。[global]段等效于命令行参数文档强调[global]段接受--help列出的任意配置参数因此上面示例等价于用这些参数启动 copypartycopyparty.exe --lo c:\users\you\logs\copyparty-%Y-%m%d.xz -e2dsa -e2ts -z -p 80,443 --theme 2 --lang nor逐项解析结合 copyparty/cfg.py 中的官方参数帮助文本配置等价参数作用lo: ~/logs/cpp-%Y-%m%d.xz--lo日志写入 xz 压缩文件压缩导致日志有延迟刷新~在 Windows 下展开为当前用户目录即c:\users\you\logs\e2dsa-e2dsa启动时扫描所有文件夹为新文件建立数据库索引隐含-e2ds启用后文件可搜索并支持上传撤销upload-undoe2ts-e2ts启动时对已存在的媒体文件扫描元数据标签artist/title/专辑隐含-e2t注意文档特别指出它不影响e2dsa带来的加速上传效果z-z启用 zeroconfmDNS/SSDP 广播让局域网内其他设备可以通过http://HOSTNAME.local/发现并访问该服务p: 80,443-p 80,443监听 80 和 443 端口替代默认的 3923 端口theme: 2--theme 2默认主题设为 protonmail-monokailang: nor--lang nor默认界面语言设为北欧语viking这些参数在源码中的定义可以逐一验证-e2dsascans all folders on startup; sets -e2ds与-e2tsscan newly discovered files for metadata on startup; sets -e2t定义于 copyparty/main.py#L1944-L1976帮助文本与 copyparty/cfg.py#L276-L281 的参数表一致。e2dsa → e2ds、e2tsr → e2ts → e2t的隐含关系在 copyparty/util.py#L424-L427 中显式列出——即文档中e2dsa 加速上传、e2ts 只加标签这一区分的底层依据。另外注意一个权限前提从源码结构看e2dsa的启动索引行为与卷的写权限存在联动校验逻辑copyparty/authsrv.py#L2450 处按e2ds and vol.axs.uwrite或e2dsa判断若对某些卷启用了基于符号链接的去重但没开索引copyparty 启动时会发出警告提示启用-e2dsacopyparty/authsrv.py#L3055。本示例中三个卷都给了 kevinrwmd权限因此索引功能可完整生效。[accounts]段用户表[accounts]段定义全部账号username: password一行一个用户。示例中只有一个用户kevin其密码是shangalabangala。这些账号随后被各卷的accs:段引用作为授权对象。源码解析处见 copyparty/authsrv.py#L1476-L1488格式不合法会直接抛出lines inside the [accounts] section must be username: password的配置错误。卷定义与accs权限位文档创建了三个卷/→ 共享c:\pub所有人可匿名读/下载r: *只有登录 kevin 才能写/移动/删除rwmd: kevin/inc→ 共享c:\pub\inc任何人可上传但不能浏览目录w: *只有 kevin 能看到里面有什么/music→ 共享~/music即c:\users\you\music权限与/相同。accs权限位的完整集合是rwmdgGhaA.加通配*其中A等价于rwmda.读/写/移动/删除/点文件。这一点可以从 copyparty/authsrv.py#L1530 的校验正则re.sub([rwmdgGhaA.], , sk)和错误提示accs entries must be rwmdgGhaA.: user1, user2, ...得到印证权限字符A的语义all; same as rwmda.记录在 copyparty/cfg.py#L219。/inc卷是本例的亮点w: *授予匿名上传但不授予读形成只进不出的收件箱——陌生人可投递文件但目录内容对未登录者不可见这是纯权限位组合就能实现的典型用法无需任何脚本。控制台运行与测试文档建议先以控制台前台方式测试配置便于观察输出使用copyparty.execopyparty.exe -c party.conf或使用copyparty-sfx.py需替换python311为实际安装的 Python 版本目录名%localappdata%\programs\python\python311\python.exe copyparty-sfx.py -c party.conf-c即--config指向配置文件路径。启动后按配置服务将监听 80/443 端口日志滚动写入c:\users\you\logs\cpp-*.xz并在局域网内通过 zeroconf 以HOSTNAME.local广播。首次启动耗时偏长是正常的e2dsa会索引全部文件夹、e2ts会对媒体文件提取标签依赖已装好的 FFmpeg。注册为 Windows 服务NSSM 开机自启要让 copyparty 随系统自启文档采用的方案是 NSSMNon-Sucking Service Manager。先把nssm.exe放入 PATH然后按所用运行形态二选一形态 A基于copyparty.exenssm install cpp %homedrive%%homepath%\downloads\copyparty.exe -c %homedrive%%homepath%\documents\party.conf形态 B基于copyparty-sfx.py把解释器作为可执行程序参数传入nssm install cpp %localappdata%\programs\python\python311\python.exe %homedrive%%homepath%\downloads\copyparty-sfx.py -c %homedrive%%homepath%\documents\party.conf服务名统一取cpp。安装完成后文档要求将服务的运行账号改为你自己的 Windows 账户并附密码这是两个关键动机文件权限服务进程需要以你的账户身份访问c:\pub、~/music等用户目录避免默认的 SYSTEM/LOCAL SERVICE 账户遇到权限异常路径展开配置里的~、%homedrive%、%homepath%等只有在用户会话下才能正确展开。nssm set cpp ObjectName .\yourAccoutName yourWindowsPassword nssm start cpp服务不启动时的排查文档给出了最后的排查手段为服务开启 stderr 日志观察具体报错nssm set cpp AppStderr %homedrive%%homepath%\logs\cppsvc.err nssm set cpp AppStderrCreationDisposition 2AppStderrCreationDisposition 2表示以打开或创建模式写日志文件便于反复启动时追加错误信息。由于本例[global]已经配置了lo: ~/logs/cpp-%Y-%m%d.xzcopyparty 自身的运行日志会同时写入 xz 文件NSSM 捕获的 stderr 则专门用于诊断进程根本没起来这类启动期故障例如配置解析失败、端口 80/443 被占用——80/443 在 Windows 上经常被 IIS/World Wide Web Publishing Service 抢占这是该示例选 80/443 时最需要留意的现实约束。小结与可深挖的仓库资源按以上流程你在 Windows 上获得的是一个监听 80/443、三卷权限隔离、支持文件与音乐标签搜索、缩略图生成与局域网自动发现的 copyparty 服务且已随系统自启。后续若想调整行为可直接参考仓库中的这些材料全量参数速查copyparty/cfg.py 内嵌的参数帮助表与--help输出同源更复杂的配置范式含flags:子段、[groups]用户组、上传限额maxb/maxn等docs/example.conf 与 docs/example2.conf配置文件解析与accs权限校验的实现copyparty/authsrv.py命令行参数定义copyparty/main.py同类部署文档可对照 docs/examples/docker 下的 Docker 示例以及 contrib/windows/copyparty-ctmp.bat 提供的 Windows 环境修复启动方式。【免费下载链接】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),仅供参考
返回列表