WWW.YOUINFO.SITE
标签聚合 pan

/tag/pan

v2ex · 2026-06-10 14:24:00+08:00 · tech

ShipAny 新版本发布了🎉,上线了三套基础模板👇 shipany-next:Agent-Native 开发框架,面向 Agent Coding 而设计,通过内置 Skills 极速开发新项目 shipany-vinext:基于 Cloudflare 官方 Vinext 框架而设计,一键部署到 Cloudflare Workers ,压缩后体积是 shipany-two 的 1/7 ,绑定 CF 全家桶,节约成本 shipany-tanstack:基于 TanStack Start 而设计,使用 Vite 构建,启动与运行速度极快,跨平台部署方便 ShipAny 老用户支付 $1.99 获得新模板。新用户通过这个链接👇 https://shipany.ai/zh/pricing?ivt=idoubi 购买 Premium 会员,输入优惠码: NEXT ,立减 $50 ShipAny 官网也基于 shipany-tanstack 完成了重构,交互体验提升不少。 ShipAny 开发文档也更新了。 ShipAny 新版本整合了流行的技术栈,主推 TanStack + Vite 生态,高性能运行,部署到 Cloudflare ,极具性价比。 ShipAny 新版本精心设计了几个 Skills ,在 Coding Agent 一键调用,对话式快速完成新项目开发。 做 AI SaaS 网站需要的基础功能,ShipAny 基本上都集成了,主打一个开箱即用,让你的 Coding Agent 无需造轮子,快速上线。 ShipAny 官方出品的基础模板,ShipAny Premium 会员可以超低价获取,主打一个仪式感,让买模板跟买咖啡一样简单。 ShipAny 用户提交了几百个案例,有一些有很大的流量,有一些赚到了钱。ShipAny 定位是一把好铲子,帮助用户去淘金。 加入 ShipAny 联盟,设置专属的邀请链接和优惠码。可自行分配额度,帮助朋友获得优惠,自己获得奖励。 我们已经进入了 Agent 主导开发的新时代,做产品变得极其简单。 一个 Agent-Native 开发框架,可以让 Agent 更快速地集成项目需要的基础能力:登录、注册、支付、积分、存储、多语言、SEO 、AI 生成、管理后台。 ShipAny 的定位,就是这样一个 Agent-Native 开发框架,通过一系列的模板覆盖常用的技术栈和业务功能,内置丰富的 Skills 让 Agent 开箱即用,帮助创作者一小时上线功能完整、可商业化的 AI 产品。 新版本,新征程。期待与 ShipAny 用户共建生态,做大做强。✌️

V2EX - 技术 · 2026-06-10 11:43:03+08:00 · tech

5 年前我发了 ZPan 首发!迟到一年的云存储网盘还有人需要么? 当时 ZPan 的想法很简单:既然某些网盘动不动限速、开会员也不一定省心,那为什么不直接基于对象存储搭一个自己的网盘?文件放在 OSS 、COS 、Kodo 、S3 、MinIO 这些对象存储里,ZPan 只负责用户、目录、分享、配额这些控制逻辑。上传下载尽量走预签名直链,不让服务器变成带宽瓶颈。 这个思路到今天我依然觉得是对的。 但几年后再回头看,V1 解决的是“能不能自己搭一个网盘”的问题,却没有解决“能不能长期稳定地用下去”的问题。更尴尬的是,作为 ZPan 的作者,我自己其实都没有一个长期稳定运行的 ZPan 。 这也是我重新做 ZPan V2 的起点。 连作者自己都懒得运维 以前要跑一个 ZPan ,大体上还是传统服务端应用那一套:找一台 VPS ,装环境,跑服务,配反代,配证书,配数据库,后面还要处理更新、备份、磁盘、内存、进程挂掉、系统升级这些事情。 每一件单独看都不难。 麻烦的是,它平时没事的时候你几乎感受不到成本,一旦出问题,你就必须立刻切换到运维模式。服务挂了要上去看日志,证书有问题要查配置,机器抽风要重启,磁盘满了要清理。可能一年只有几次,但每一次都很烦。 我后来发现,如果一个产品连作者自己都不愿意长期运维,那它对普通用户也很难真的友好。 所以 V2 最大的技术方向,不是简单换个前端框架,也不是把 Go 换成 TypeScript ,而是把 ZPan 往 Serverless 上迁。 现在 ZPan V2 优先支持 Cloudflare Workers ,同时也支持 Docker ,并扩展到 AWS Lambda 、Vercel 、Netlify 、Azure Functions 、Google Cloud Run 等运行环境。尤其是 Cloudflare Workers + D1 + R2 这一套,对个人用户非常合适:不需要维护 VPS ,不需要让家里的 NAS 长期开机,也不用每天担心哪天进程挂了。 这对我自己也很现实。因为我希望可以稳定地提供一个服务,而不是隔三差五被一台 VPS 叫回去救火。 ZPan 仍然是那个基于对象存储的网盘,但它不应该再要求你先成为一个合格的运维。 也正是因为 V2 走向 Serverless ,ZPan 官方现在已经上线并运营了官方网盘服务: zpan.space 。 这件事在 V1 时代其实很难下决心。因为一旦官方提供服务,就意味着我要持续维护服务器、处理故障、升级系统、盯着各种基础设施问题。对个人项目来说,这个成本很高。 但 Serverless 之后,这件事变得现实了。官方服务可以跑在更免运维的基础设施上,我不用再被服务器拖住,也能给不想自托管的普通用户提供一个稳定入口。 所以现在 ZPan 有两种使用方式:懂技术、喜欢折腾的人可以继续自托管;普通用户、不想管部署的人,可以直接使用 zpan.space 。 V2 不只是一个网盘 如果只看表面,ZPan V2 还是文件、文件夹、上传、下载、分享这些东西。 但现在我更愿意把它叫做一个 S3 原生的文件托管平台 。 这个差别在哪里呢? 传统网盘通常把“文件系统”当成核心。文件在服务器磁盘上,或者在某个网盘提供商里,应用围绕这些文件做管理。ZPan V2 的核心不是本地文件系统,也不是各种网盘账号聚合,而是一套围绕 S3 兼容对象存储的控制平面。 文件存在哪里?在 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储里。 ZPan 负责什么?负责用户、组织、团队、目录、对象元数据、上传会话、分享链接、图床路径、WebDAV 映射、配额和权益、远程下载任务、后台任务、审计、公告、授权和商业化能力。 所以 ZPan 不是要替代对象存储,而是给对象存储补上一个适合人使用、适合团队使用、适合运营使用的入口。 这也是 V2 和 V1 最大的区别。V1 更像一个“对象存储版私人网盘”,重点是替代某些限速网盘。V2 则更像一个“S3 文件工作台”,重点是把对象存储变成一个可管理、可分享、可接入工具、可运营的产品。 文件管理重新做了一遍 V2 重新做了完整的文件管理体验:上传、下载、新建文件夹、重命名、移动、复制、批量操作、搜索、回收站、文件预览、上传进度、名称冲突处理等都重新梳理了一遍。 这里面有一些看起来不显眼但很关键的变化。 比如上传不只是返回一个上传地址那么简单。V2 里有对象上传会话,可以处理更大的文件上传和分片预签名,文件先进入 draft 状态,确认上传完成之后才真正变成 active 。这样前端、对象存储、数据库记录之间不会轻易出现“文件没传完但记录已经存在”的脏状态。 再比如删除不是直接删对象,而是先进入回收站;替换文件时,旧文件也可以按规则进入回收站;批量操作会有进度和失败反馈;重名冲突可以选择替换或保留两者。 这些都不是特别适合拿来做噱头的功能点,但它们决定一个工具能不能每天用。 图床是一等场景 我自己写博客、写文档、发截图时,经常需要一个稳定的图床。以前大家会用各种免费图床,后来一个个失效;也有人直接用对象存储,但每次上传、复制链接、管理路径都不够顺手。 V2 把图床作为核心场景来做。 你可以在 ZPan 里开启图床能力,配置路径规则、访问域名、Referer 白名单,然后用 API Key 接入 PicGo 、PicList 、uPic 、ShareX 、Flameshot 这些常见工具。截图之后直接上传到自己的 ZPan ,返回的就是自己的稳定链接。 这套东西底层仍然是对象存储,但体验上更像一个图床产品。对开发者、博主来说,这个场景可能比“网盘”本身还高频。 分享不只是发一个链接 网盘最常见的动作就是分享。V2 的分享不再只是把文件丢出去,而是支持访问页、直链、密码、过期时间、下载次数限制、访问统计、下载统计,以及保存到自己网盘。 文件夹分享也不是简单暴露一个目录,而是会在分享页里继续按 ZPan 的目录模型浏览。每个用户还可以有自己的公开主页,把公开分享过的资料整理出来。 这意味着 ZPan 不只是私人存储,也可以变成一个轻量的文件发布工具。项目 release 、设计稿、安装包、课件、素材包、公开资料页,都可以用同一套分享能力完成。 团队、配额和权益 V1 更偏个人使用,V2 从一开始就有组织和团队的模型。 每个用户有自己的个人空间,也可以加入团队空间。文件、成员、角色、活动记录、配额都围绕工作空间来组织。这样 ZPan 就不只是“我自己的网盘”,也可以承担小团队内部资料库、素材库、交付文件管理这些场景。 V2 的配额模型也不再只是一个简单的数字。它有基础配额、存储权益、流量权益、当前套餐、额外包、周期流量统计等概念。这样以后不管是免费自用、团队内部分配,还是商业化售卖存储套餐,都能在同一套模型上继续发展。 这也是为什么我说 V2 不是一个简单的网盘重写。它已经开始具备“运营一个文件服务”的底层结构。 WebDAV 、后台任务和远程下载 V2 也在补齐外部访问和文件工作流。 WebDAV 可以让你把 ZPan 挂到系统文件管理器、同步工具或其他支持 WebDAV 的客户端里。它不是把对象存储密钥暴露给客户端,而是通过专用 API Key 访问 ZPan ,再由 ZPan 映射到用户有权限访问的工作空间和文件树。 后台任务则承载压缩、解压等文件处理流程。小文件 zip 压缩和解压可以直接在当前运行环境里完成,并且有任务状态、进度、失败原因和结果记录。 远程下载也不是让主站自己去长期跑下载进程。V2 的设计是 ZPan 做控制中心,下载器作为独立节点注册进来,通过心跳上报状态、能力、速度和任务进度。ZPan 负责创建任务、分配任务、展示进度、最后把完成的文件导入对象存储。 这样主站仍然保持轻量,需要网络环境和临时磁盘的工作交给下载节点。 把 WebDAV 和远程下载放在一起,就会出现一些很实用的玩法。 比如你可以把下载器部署在网络条件更合适的地方,在 ZPan 里创建远程下载任务。下载器负责把媒体资源下载下来,再上传回 ZPan 。随后你用 Infuse 、VidHub 这类媒体客户端,通过 WebDAV 连接 ZPan ,就可以直接观看这些资源。 这样 ZPan 就可以变成一个轻量的媒体资源中转和管理中心:远程下载负责把资源带回来,WebDAV 负责让播放器和客户端读到它,对象存储负责保存文件。 我也在做另一个媒体资源聚合相关的开源项目,它同样会是一个可以自托管的项目。未来它会对接 ZPan ,让用户更方便地搜索资源、一键下载,再通过 WebDAV 观看。这个项目还在开发中,有兴趣的话可以关注我的 GitHub ,后面会开源出来。 版本分层:开源、支持与商业化 V2 现在也有更清晰的版本分层:Community 、Pro 、Business 。 这里我想说清楚一点:ZPan 并不是把个人使用需要的基础能力都放到付费版里。基础文件管理、分享、图床、社交登录/OIDC 、邀请码等能力属于 Community 的核心范围。对于个人、自托管用户、小团队来说,这些能力已经可以覆盖大多数日常场景。 Community 面向个人、家庭和小范围自用。它不是残缺版本,而是完整覆盖日常网盘、图床、分享、WebDAV 这些基础需求。只是为了保持社区版的边界清晰,会有一些高级能力和规模限制。 Pro 更像一个功能解锁授权。更坦诚一点说,它也是一种对 ZPan 开源项目的支持。一个开源项目如果完全没有收入,很难长期稳定地投入时间、精力和基础设施成本。Pro 会解锁一些更高级的能力,比如自定义品牌、调整站点名称、开放注册、更多团队空间、更多存储后端、站点公告、审计日志等。它更适合重度个人用户、家庭用户、小团队,或者希望把自己的 ZPan 实例做得更完整、更像自己产品的人。 Business 才是面向“运营一个 ZPan 实例”的版本。如果你想对外营业,把 ZPan 当成一个商业化服务来运营,给用户售卖存储套餐和流量权益,或者围绕下载器、存储出口流量做 Credits 计费,那应该使用 Business 。 这个分层的原则很简单:Community 覆盖个人和家庭的完整基础体验; Pro 解锁更高级的站点和团队能力,同时支持项目继续发展; Business 面向对外运营和商业化闭环。 适合谁用 如果你是开发者、博主,想要一个自己的图床,ZPan 很适合。 如果你有 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储,但缺一个好用的 Web 管理入口,ZPan 很适合。 如果你经常要分享文件、发布资料、给别人一个稳定下载链接,ZPan 很适合。 如果你是一个小团队,想把设计素材、项目文件、交付物、内部资料统一放到一个可控的地方,ZPan 也很适合。 但如果你想要的是多人在线文档协作、企业 IM 、日历、邮件、全套办公套件,那 ZPan 不是这个方向。它不会去做一个更小的 Nextcloud ,也不会去做一个更复杂的 AList 。ZPan 会继续专注在 S3 对象存储之上的文件托管和文件工作流。 顺便聊聊 Agent Kanban 最后再聊一下这次重做的开发方式。 ZPan V2 的开发过程,基本上是通过 Agent Kanban 完成的。 我没有像过去那样一行一行地写代码,而是把自己放在产品负责人和架构负责人的位置:定产品方向、定架构边界、定工程规则、拆任务、写验收标准、做 review ,然后让 Agent 去实现。 这件事不只是“用 AI 写代码”这么简单。 过去一两年很火的 vibe coding ,更多是让用户在网页里描述一个想法,然后生成一个能看的 demo 。这个方向很有价值,但它离真实产品开发还有距离。 真实项目需要的不只是“生成代码”,还需要任务拆解、上下文管理、架构约束、测试验证、代码审查、持续迭代、问题回滚,以及多人协作里的责任边界。换句话说,它需要一套 agent harness:围绕 Agent 的任务系统、工具、状态、权限、执行环境、观测和验收机制。 Agent Kanban 想验证的就是这个方向:能不能把 vibe coding 往 harness engineering 推进一步,从一个偏 demo 的流程,推进到可以稳定交付真实产品的工程流程。 ZPan V2 算是我的一个验证场。 整个 V2 的过程中,我更像是在管理一个 Agent 团队:我定义需求和边界,Agent 负责实现;我定义验收标准,Agent 根据标准补测试、修 bug 、完善交互;我不追求一次生成一个大而全的结果,而是让每个任务都进入一个可追踪、可 review 、可验收的流程。 最后 ZPan V2 能跑起来,功能也能一轮轮补齐,至少说明这套方法是有机会的。 所以这篇文章表面上是在介绍 ZPan V2 ,背后其实也记录了另一件事:我正在用一个真实产品,验证 agent harness 这一套工程化方法能不能从“写 demo”走到“做产品”。 最后 几年前我做 ZPan ,是因为有人跟我抱怨网盘不好用。 几年后我重做 ZPan ,是因为我发现“把文件放到对象存储里”这件事已经越来越普遍,但大家仍然缺一个轻量、现代、免运维、可自托管、可运营的入口。 ZPan V2 想做的就是这个入口。 如果你也受够了网盘限速,或者正在找一个自己的图床、文件分享站、团队资料库,欢迎试试 ZPan 。 GitHub: https://github.com/saltbo/zpan ZPan 官方服务: https://zpan.space Agent Kanban: https://agent-kanban.dev 如果你已经用过 V1 ,也欢迎回来看看 V2 。它还是那个基于对象存储的 ZPan ,只是这次,我想把它做得更像一个真正可以长期稳定使用的产品。

V2EX - 技术 · 2026-06-10 11:43:03+08:00 · tech

5 年前我发了 ZPan 首发!迟到一年的云存储网盘还有人需要么? 当时 ZPan 的想法很简单:既然某些网盘动不动限速、开会员也不一定省心,那为什么不直接基于对象存储搭一个自己的网盘?文件放在 OSS 、COS 、Kodo 、S3 、MinIO 这些对象存储里,ZPan 只负责用户、目录、分享、配额这些控制逻辑。上传下载尽量走预签名直链,不让服务器变成带宽瓶颈。 这个思路到今天我依然觉得是对的。 但几年后再回头看,V1 解决的是“能不能自己搭一个网盘”的问题,却没有解决“能不能长期稳定地用下去”的问题。更尴尬的是,作为 ZPan 的作者,我自己其实都没有一个长期稳定运行的 ZPan 。 这也是我重新做 ZPan V2 的起点。 连作者自己都懒得运维 以前要跑一个 ZPan ,大体上还是传统服务端应用那一套:找一台 VPS ,装环境,跑服务,配反代,配证书,配数据库,后面还要处理更新、备份、磁盘、内存、进程挂掉、系统升级这些事情。 每一件单独看都不难。 麻烦的是,它平时没事的时候你几乎感受不到成本,一旦出问题,你就必须立刻切换到运维模式。服务挂了要上去看日志,证书有问题要查配置,机器抽风要重启,磁盘满了要清理。可能一年只有几次,但每一次都很烦。 我后来发现,如果一个产品连作者自己都不愿意长期运维,那它对普通用户也很难真的友好。 所以 V2 最大的技术方向,不是简单换个前端框架,也不是把 Go 换成 TypeScript ,而是把 ZPan 往 Serverless 上迁。 现在 ZPan V2 优先支持 Cloudflare Workers ,同时也支持 Docker ,并扩展到 AWS Lambda 、Vercel 、Netlify 、Azure Functions 、Google Cloud Run 等运行环境。尤其是 Cloudflare Workers + D1 + R2 这一套,对个人用户非常合适:不需要维护 VPS ,不需要让家里的 NAS 长期开机,也不用每天担心哪天进程挂了。 这对我自己也很现实。因为我希望可以稳定地提供一个服务,而不是隔三差五被一台 VPS 叫回去救火。 ZPan 仍然是那个基于对象存储的网盘,但它不应该再要求你先成为一个合格的运维。 也正是因为 V2 走向 Serverless ,ZPan 官方现在已经上线并运营了官方网盘服务: zpan.space 。 这件事在 V1 时代其实很难下决心。因为一旦官方提供服务,就意味着我要持续维护服务器、处理故障、升级系统、盯着各种基础设施问题。对个人项目来说,这个成本很高。 但 Serverless 之后,这件事变得现实了。官方服务可以跑在更免运维的基础设施上,我不用再被服务器拖住,也能给不想自托管的普通用户提供一个稳定入口。 所以现在 ZPan 有两种使用方式:懂技术、喜欢折腾的人可以继续自托管;普通用户、不想管部署的人,可以直接使用 zpan.space 。 V2 不只是一个网盘 如果只看表面,ZPan V2 还是文件、文件夹、上传、下载、分享这些东西。 但现在我更愿意把它叫做一个 S3 原生的文件托管平台 。 这个差别在哪里呢? 传统网盘通常把“文件系统”当成核心。文件在服务器磁盘上,或者在某个网盘提供商里,应用围绕这些文件做管理。ZPan V2 的核心不是本地文件系统,也不是各种网盘账号聚合,而是一套围绕 S3 兼容对象存储的控制平面。 文件存在哪里?在 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储里。 ZPan 负责什么?负责用户、组织、团队、目录、对象元数据、上传会话、分享链接、图床路径、WebDAV 映射、配额和权益、远程下载任务、后台任务、审计、公告、授权和商业化能力。 所以 ZPan 不是要替代对象存储,而是给对象存储补上一个适合人使用、适合团队使用、适合运营使用的入口。 这也是 V2 和 V1 最大的区别。V1 更像一个“对象存储版私人网盘”,重点是替代某些限速网盘。V2 则更像一个“S3 文件工作台”,重点是把对象存储变成一个可管理、可分享、可接入工具、可运营的产品。 文件管理重新做了一遍 V2 重新做了完整的文件管理体验:上传、下载、新建文件夹、重命名、移动、复制、批量操作、搜索、回收站、文件预览、上传进度、名称冲突处理等都重新梳理了一遍。 这里面有一些看起来不显眼但很关键的变化。 比如上传不只是返回一个上传地址那么简单。V2 里有对象上传会话,可以处理更大的文件上传和分片预签名,文件先进入 draft 状态,确认上传完成之后才真正变成 active 。这样前端、对象存储、数据库记录之间不会轻易出现“文件没传完但记录已经存在”的脏状态。 再比如删除不是直接删对象,而是先进入回收站;替换文件时,旧文件也可以按规则进入回收站;批量操作会有进度和失败反馈;重名冲突可以选择替换或保留两者。 这些都不是特别适合拿来做噱头的功能点,但它们决定一个工具能不能每天用。 图床是一等场景 我自己写博客、写文档、发截图时,经常需要一个稳定的图床。以前大家会用各种免费图床,后来一个个失效;也有人直接用对象存储,但每次上传、复制链接、管理路径都不够顺手。 V2 把图床作为核心场景来做。 你可以在 ZPan 里开启图床能力,配置路径规则、访问域名、Referer 白名单,然后用 API Key 接入 PicGo 、PicList 、uPic 、ShareX 、Flameshot 这些常见工具。截图之后直接上传到自己的 ZPan ,返回的就是自己的稳定链接。 这套东西底层仍然是对象存储,但体验上更像一个图床产品。对开发者、博主来说,这个场景可能比“网盘”本身还高频。 分享不只是发一个链接 网盘最常见的动作就是分享。V2 的分享不再只是把文件丢出去,而是支持访问页、直链、密码、过期时间、下载次数限制、访问统计、下载统计,以及保存到自己网盘。 文件夹分享也不是简单暴露一个目录,而是会在分享页里继续按 ZPan 的目录模型浏览。每个用户还可以有自己的公开主页,把公开分享过的资料整理出来。 这意味着 ZPan 不只是私人存储,也可以变成一个轻量的文件发布工具。项目 release 、设计稿、安装包、课件、素材包、公开资料页,都可以用同一套分享能力完成。 团队、配额和权益 V1 更偏个人使用,V2 从一开始就有组织和团队的模型。 每个用户有自己的个人空间,也可以加入团队空间。文件、成员、角色、活动记录、配额都围绕工作空间来组织。这样 ZPan 就不只是“我自己的网盘”,也可以承担小团队内部资料库、素材库、交付文件管理这些场景。 V2 的配额模型也不再只是一个简单的数字。它有基础配额、存储权益、流量权益、当前套餐、额外包、周期流量统计等概念。这样以后不管是免费自用、团队内部分配,还是商业化售卖存储套餐,都能在同一套模型上继续发展。 这也是为什么我说 V2 不是一个简单的网盘重写。它已经开始具备“运营一个文件服务”的底层结构。 WebDAV 、后台任务和远程下载 V2 也在补齐外部访问和文件工作流。 WebDAV 可以让你把 ZPan 挂到系统文件管理器、同步工具或其他支持 WebDAV 的客户端里。它不是把对象存储密钥暴露给客户端,而是通过专用 API Key 访问 ZPan ,再由 ZPan 映射到用户有权限访问的工作空间和文件树。 后台任务则承载压缩、解压等文件处理流程。小文件 zip 压缩和解压可以直接在当前运行环境里完成,并且有任务状态、进度、失败原因和结果记录。 远程下载也不是让主站自己去长期跑下载进程。V2 的设计是 ZPan 做控制中心,下载器作为独立节点注册进来,通过心跳上报状态、能力、速度和任务进度。ZPan 负责创建任务、分配任务、展示进度、最后把完成的文件导入对象存储。 这样主站仍然保持轻量,需要网络环境和临时磁盘的工作交给下载节点。 把 WebDAV 和远程下载放在一起,就会出现一些很实用的玩法。 比如你可以把下载器部署在网络条件更合适的地方,在 ZPan 里创建远程下载任务。下载器负责把媒体资源下载下来,再上传回 ZPan 。随后你用 Infuse 、VidHub 这类媒体客户端,通过 WebDAV 连接 ZPan ,就可以直接观看这些资源。 这样 ZPan 就可以变成一个轻量的媒体资源中转和管理中心:远程下载负责把资源带回来,WebDAV 负责让播放器和客户端读到它,对象存储负责保存文件。 我也在做另一个媒体资源聚合相关的开源项目,它同样会是一个可以自托管的项目。未来它会对接 ZPan ,让用户更方便地搜索资源、一键下载,再通过 WebDAV 观看。这个项目还在开发中,有兴趣的话可以关注我的 GitHub ,后面会开源出来。 版本分层:开源、支持与商业化 V2 现在也有更清晰的版本分层:Community 、Pro 、Business 。 这里我想说清楚一点:ZPan 并不是把个人使用需要的基础能力都放到付费版里。基础文件管理、分享、图床、社交登录/OIDC 、邀请码等能力属于 Community 的核心范围。对于个人、自托管用户、小团队来说,这些能力已经可以覆盖大多数日常场景。 Community 面向个人、家庭和小范围自用。它不是残缺版本,而是完整覆盖日常网盘、图床、分享、WebDAV 这些基础需求。只是为了保持社区版的边界清晰,会有一些高级能力和规模限制。 Pro 更像一个功能解锁授权。更坦诚一点说,它也是一种对 ZPan 开源项目的支持。一个开源项目如果完全没有收入,很难长期稳定地投入时间、精力和基础设施成本。Pro 会解锁一些更高级的能力,比如自定义品牌、调整站点名称、开放注册、更多团队空间、更多存储后端、站点公告、审计日志等。它更适合重度个人用户、家庭用户、小团队,或者希望把自己的 ZPan 实例做得更完整、更像自己产品的人。 Business 才是面向“运营一个 ZPan 实例”的版本。如果你想对外营业,把 ZPan 当成一个商业化服务来运营,给用户售卖存储套餐和流量权益,或者围绕下载器、存储出口流量做 Credits 计费,那应该使用 Business 。 这个分层的原则很简单:Community 覆盖个人和家庭的完整基础体验; Pro 解锁更高级的站点和团队能力,同时支持项目继续发展; Business 面向对外运营和商业化闭环。 适合谁用 如果你是开发者、博主,想要一个自己的图床,ZPan 很适合。 如果你有 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储,但缺一个好用的 Web 管理入口,ZPan 很适合。 如果你经常要分享文件、发布资料、给别人一个稳定下载链接,ZPan 很适合。 如果你是一个小团队,想把设计素材、项目文件、交付物、内部资料统一放到一个可控的地方,ZPan 也很适合。 但如果你想要的是多人在线文档协作、企业 IM 、日历、邮件、全套办公套件,那 ZPan 不是这个方向。它不会去做一个更小的 Nextcloud ,也不会去做一个更复杂的 AList 。ZPan 会继续专注在 S3 对象存储之上的文件托管和文件工作流。 顺便聊聊 Agent Kanban 最后再聊一下这次重做的开发方式。 ZPan V2 的开发过程,基本上是通过 Agent Kanban 完成的。 我没有像过去那样一行一行地写代码,而是把自己放在产品负责人和架构负责人的位置:定产品方向、定架构边界、定工程规则、拆任务、写验收标准、做 review ,然后让 Agent 去实现。 这件事不只是“用 AI 写代码”这么简单。 过去一两年很火的 vibe coding ,更多是让用户在网页里描述一个想法,然后生成一个能看的 demo 。这个方向很有价值,但它离真实产品开发还有距离。 真实项目需要的不只是“生成代码”,还需要任务拆解、上下文管理、架构约束、测试验证、代码审查、持续迭代、问题回滚,以及多人协作里的责任边界。换句话说,它需要一套 agent harness:围绕 Agent 的任务系统、工具、状态、权限、执行环境、观测和验收机制。 Agent Kanban 想验证的就是这个方向:能不能把 vibe coding 往 harness engineering 推进一步,从一个偏 demo 的流程,推进到可以稳定交付真实产品的工程流程。 ZPan V2 算是我的一个验证场。 整个 V2 的过程中,我更像是在管理一个 Agent 团队:我定义需求和边界,Agent 负责实现;我定义验收标准,Agent 根据标准补测试、修 bug 、完善交互;我不追求一次生成一个大而全的结果,而是让每个任务都进入一个可追踪、可 review 、可验收的流程。 最后 ZPan V2 能跑起来,功能也能一轮轮补齐,至少说明这套方法是有机会的。 所以这篇文章表面上是在介绍 ZPan V2 ,背后其实也记录了另一件事:我正在用一个真实产品,验证 agent harness 这一套工程化方法能不能从“写 demo”走到“做产品”。 最后 几年前我做 ZPan ,是因为有人跟我抱怨网盘不好用。 几年后我重做 ZPan ,是因为我发现“把文件放到对象存储里”这件事已经越来越普遍,但大家仍然缺一个轻量、现代、免运维、可自托管、可运营的入口。 ZPan V2 想做的就是这个入口。 如果你也受够了网盘限速,或者正在找一个自己的图床、文件分享站、团队资料库,欢迎试试 ZPan 。 GitHub: https://github.com/saltbo/zpan ZPan 官方服务: https://zpan.space Agent Kanban: https://agent-kanban.dev 如果你已经用过 V1 ,也欢迎回来看看 V2 。它还是那个基于对象存储的 ZPan ,只是这次,我想把它做得更像一个真正可以长期稳定使用的产品。

V2EX - 技术 · 2026-06-10 10:43:03+08:00 · tech

5 年前我发了 ZPan 首发!迟到一年的云存储网盘还有人需要么? 当时 ZPan 的想法很简单:既然某些网盘动不动限速、开会员也不一定省心,那为什么不直接基于对象存储搭一个自己的网盘?文件放在 OSS 、COS 、Kodo 、S3 、MinIO 这些对象存储里,ZPan 只负责用户、目录、分享、配额这些控制逻辑。上传下载尽量走预签名直链,不让服务器变成带宽瓶颈。 这个思路到今天我依然觉得是对的。 但几年后再回头看,V1 解决的是“能不能自己搭一个网盘”的问题,却没有解决“能不能长期稳定地用下去”的问题。更尴尬的是,作为 ZPan 的作者,我自己其实都没有一个长期稳定运行的 ZPan 。 这也是我重新做 ZPan V2 的起点。 连作者自己都懒得运维 以前要跑一个 ZPan ,大体上还是传统服务端应用那一套:找一台 VPS ,装环境,跑服务,配反代,配证书,配数据库,后面还要处理更新、备份、磁盘、内存、进程挂掉、系统升级这些事情。 每一件单独看都不难。 麻烦的是,它平时没事的时候你几乎感受不到成本,一旦出问题,你就必须立刻切换到运维模式。服务挂了要上去看日志,证书有问题要查配置,机器抽风要重启,磁盘满了要清理。可能一年只有几次,但每一次都很烦。 我后来发现,如果一个产品连作者自己都不愿意长期运维,那它对普通用户也很难真的友好。 所以 V2 最大的技术方向,不是简单换个前端框架,也不是把 Go 换成 TypeScript ,而是把 ZPan 往 Serverless 上迁。 现在 ZPan V2 优先支持 Cloudflare Workers ,同时也支持 Docker ,并扩展到 AWS Lambda 、Vercel 、Netlify 、Azure Functions 、Google Cloud Run 等运行环境。尤其是 Cloudflare Workers + D1 + R2 这一套,对个人用户非常合适:不需要维护 VPS ,不需要让家里的 NAS 长期开机,也不用每天担心哪天进程挂了。 这对我自己也很现实。因为我希望可以稳定地提供一个服务,而不是隔三差五被一台 VPS 叫回去救火。 ZPan 仍然是那个基于对象存储的网盘,但它不应该再要求你先成为一个合格的运维。 也正是因为 V2 走向 Serverless ,ZPan 官方现在已经上线并运营了官方网盘服务: zpan.space 。 这件事在 V1 时代其实很难下决心。因为一旦官方提供服务,就意味着我要持续维护服务器、处理故障、升级系统、盯着各种基础设施问题。对个人项目来说,这个成本很高。 但 Serverless 之后,这件事变得现实了。官方服务可以跑在更免运维的基础设施上,我不用再被服务器拖住,也能给不想自托管的普通用户提供一个稳定入口。 所以现在 ZPan 有两种使用方式:懂技术、喜欢折腾的人可以继续自托管;普通用户、不想管部署的人,可以直接使用 zpan.space 。 V2 不只是一个网盘 如果只看表面,ZPan V2 还是文件、文件夹、上传、下载、分享这些东西。 但现在我更愿意把它叫做一个 S3 原生的文件托管平台 。 这个差别在哪里呢? 传统网盘通常把“文件系统”当成核心。文件在服务器磁盘上,或者在某个网盘提供商里,应用围绕这些文件做管理。ZPan V2 的核心不是本地文件系统,也不是各种网盘账号聚合,而是一套围绕 S3 兼容对象存储的控制平面。 文件存在哪里?在 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储里。 ZPan 负责什么?负责用户、组织、团队、目录、对象元数据、上传会话、分享链接、图床路径、WebDAV 映射、配额和权益、远程下载任务、后台任务、审计、公告、授权和商业化能力。 所以 ZPan 不是要替代对象存储,而是给对象存储补上一个适合人使用、适合团队使用、适合运营使用的入口。 这也是 V2 和 V1 最大的区别。V1 更像一个“对象存储版私人网盘”,重点是替代某些限速网盘。V2 则更像一个“S3 文件工作台”,重点是把对象存储变成一个可管理、可分享、可接入工具、可运营的产品。 文件管理重新做了一遍 V2 重新做了完整的文件管理体验:上传、下载、新建文件夹、重命名、移动、复制、批量操作、搜索、回收站、文件预览、上传进度、名称冲突处理等都重新梳理了一遍。 这里面有一些看起来不显眼但很关键的变化。 比如上传不只是返回一个上传地址那么简单。V2 里有对象上传会话,可以处理更大的文件上传和分片预签名,文件先进入 draft 状态,确认上传完成之后才真正变成 active 。这样前端、对象存储、数据库记录之间不会轻易出现“文件没传完但记录已经存在”的脏状态。 再比如删除不是直接删对象,而是先进入回收站;替换文件时,旧文件也可以按规则进入回收站;批量操作会有进度和失败反馈;重名冲突可以选择替换或保留两者。 这些都不是特别适合拿来做噱头的功能点,但它们决定一个工具能不能每天用。 图床是一等场景 我自己写博客、写文档、发截图时,经常需要一个稳定的图床。以前大家会用各种免费图床,后来一个个失效;也有人直接用对象存储,但每次上传、复制链接、管理路径都不够顺手。 V2 把图床作为核心场景来做。 你可以在 ZPan 里开启图床能力,配置路径规则、访问域名、Referer 白名单,然后用 API Key 接入 PicGo 、PicList 、uPic 、ShareX 、Flameshot 这些常见工具。截图之后直接上传到自己的 ZPan ,返回的就是自己的稳定链接。 这套东西底层仍然是对象存储,但体验上更像一个图床产品。对开发者、博主来说,这个场景可能比“网盘”本身还高频。 分享不只是发一个链接 网盘最常见的动作就是分享。V2 的分享不再只是把文件丢出去,而是支持访问页、直链、密码、过期时间、下载次数限制、访问统计、下载统计,以及保存到自己网盘。 文件夹分享也不是简单暴露一个目录,而是会在分享页里继续按 ZPan 的目录模型浏览。每个用户还可以有自己的公开主页,把公开分享过的资料整理出来。 这意味着 ZPan 不只是私人存储,也可以变成一个轻量的文件发布工具。项目 release 、设计稿、安装包、课件、素材包、公开资料页,都可以用同一套分享能力完成。 团队、配额和权益 V1 更偏个人使用,V2 从一开始就有组织和团队的模型。 每个用户有自己的个人空间,也可以加入团队空间。文件、成员、角色、活动记录、配额都围绕工作空间来组织。这样 ZPan 就不只是“我自己的网盘”,也可以承担小团队内部资料库、素材库、交付文件管理这些场景。 V2 的配额模型也不再只是一个简单的数字。它有基础配额、存储权益、流量权益、当前套餐、额外包、周期流量统计等概念。这样以后不管是免费自用、团队内部分配,还是商业化售卖存储套餐,都能在同一套模型上继续发展。 这也是为什么我说 V2 不是一个简单的网盘重写。它已经开始具备“运营一个文件服务”的底层结构。 WebDAV 、后台任务和远程下载 V2 也在补齐外部访问和文件工作流。 WebDAV 可以让你把 ZPan 挂到系统文件管理器、同步工具或其他支持 WebDAV 的客户端里。它不是把对象存储密钥暴露给客户端,而是通过专用 API Key 访问 ZPan ,再由 ZPan 映射到用户有权限访问的工作空间和文件树。 后台任务则承载压缩、解压等文件处理流程。小文件 zip 压缩和解压可以直接在当前运行环境里完成,并且有任务状态、进度、失败原因和结果记录。 远程下载也不是让主站自己去长期跑下载进程。V2 的设计是 ZPan 做控制中心,下载器作为独立节点注册进来,通过心跳上报状态、能力、速度和任务进度。ZPan 负责创建任务、分配任务、展示进度、最后把完成的文件导入对象存储。 这样主站仍然保持轻量,需要网络环境和临时磁盘的工作交给下载节点。 把 WebDAV 和远程下载放在一起,就会出现一些很实用的玩法。 比如你可以把下载器部署在网络条件更合适的地方,在 ZPan 里创建远程下载任务。下载器负责把媒体资源下载下来,再上传回 ZPan 。随后你用 Infuse 、VidHub 这类媒体客户端,通过 WebDAV 连接 ZPan ,就可以直接观看这些资源。 这样 ZPan 就可以变成一个轻量的媒体资源中转和管理中心:远程下载负责把资源带回来,WebDAV 负责让播放器和客户端读到它,对象存储负责保存文件。 我也在做另一个媒体资源聚合相关的开源项目,它同样会是一个可以自托管的项目。未来它会对接 ZPan ,让用户更方便地搜索资源、一键下载,再通过 WebDAV 观看。这个项目还在开发中,有兴趣的话可以关注我的 GitHub ,后面会开源出来。 版本分层:开源、支持与商业化 V2 现在也有更清晰的版本分层:Community 、Pro 、Business 。 这里我想说清楚一点:ZPan 并不是把个人使用需要的基础能力都放到付费版里。基础文件管理、分享、图床、社交登录/OIDC 、邀请码等能力属于 Community 的核心范围。对于个人、自托管用户、小团队来说,这些能力已经可以覆盖大多数日常场景。 Community 面向个人、家庭和小范围自用。它不是残缺版本,而是完整覆盖日常网盘、图床、分享、WebDAV 这些基础需求。只是为了保持社区版的边界清晰,会有一些高级能力和规模限制。 Pro 更像一个功能解锁授权。更坦诚一点说,它也是一种对 ZPan 开源项目的支持。一个开源项目如果完全没有收入,很难长期稳定地投入时间、精力和基础设施成本。Pro 会解锁一些更高级的能力,比如自定义品牌、调整站点名称、开放注册、更多团队空间、更多存储后端、站点公告、审计日志等。它更适合重度个人用户、家庭用户、小团队,或者希望把自己的 ZPan 实例做得更完整、更像自己产品的人。 Business 才是面向“运营一个 ZPan 实例”的版本。如果你想对外营业,把 ZPan 当成一个商业化服务来运营,给用户售卖存储套餐和流量权益,或者围绕下载器、存储出口流量做 Credits 计费,那应该使用 Business 。 这个分层的原则很简单:Community 覆盖个人和家庭的完整基础体验; Pro 解锁更高级的站点和团队能力,同时支持项目继续发展; Business 面向对外运营和商业化闭环。 适合谁用 如果你是开发者、博主,想要一个自己的图床,ZPan 很适合。 如果你有 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储,但缺一个好用的 Web 管理入口,ZPan 很适合。 如果你经常要分享文件、发布资料、给别人一个稳定下载链接,ZPan 很适合。 如果你是一个小团队,想把设计素材、项目文件、交付物、内部资料统一放到一个可控的地方,ZPan 也很适合。 但如果你想要的是多人在线文档协作、企业 IM 、日历、邮件、全套办公套件,那 ZPan 不是这个方向。它不会去做一个更小的 Nextcloud ,也不会去做一个更复杂的 AList 。ZPan 会继续专注在 S3 对象存储之上的文件托管和文件工作流。 顺便聊聊 Agent Kanban 最后再聊一下这次重做的开发方式。 ZPan V2 的开发过程,基本上是通过 Agent Kanban 完成的。 我没有像过去那样一行一行地写代码,而是把自己放在产品负责人和架构负责人的位置:定产品方向、定架构边界、定工程规则、拆任务、写验收标准、做 review ,然后让 Agent 去实现。 这件事不只是“用 AI 写代码”这么简单。 过去一两年很火的 vibe coding ,更多是让用户在网页里描述一个想法,然后生成一个能看的 demo 。这个方向很有价值,但它离真实产品开发还有距离。 真实项目需要的不只是“生成代码”,还需要任务拆解、上下文管理、架构约束、测试验证、代码审查、持续迭代、问题回滚,以及多人协作里的责任边界。换句话说,它需要一套 agent harness:围绕 Agent 的任务系统、工具、状态、权限、执行环境、观测和验收机制。 Agent Kanban 想验证的就是这个方向:能不能把 vibe coding 往 harness engineering 推进一步,从一个偏 demo 的流程,推进到可以稳定交付真实产品的工程流程。 ZPan V2 算是我的一个验证场。 整个 V2 的过程中,我更像是在管理一个 Agent 团队:我定义需求和边界,Agent 负责实现;我定义验收标准,Agent 根据标准补测试、修 bug 、完善交互;我不追求一次生成一个大而全的结果,而是让每个任务都进入一个可追踪、可 review 、可验收的流程。 最后 ZPan V2 能跑起来,功能也能一轮轮补齐,至少说明这套方法是有机会的。 所以这篇文章表面上是在介绍 ZPan V2 ,背后其实也记录了另一件事:我正在用一个真实产品,验证 agent harness 这一套工程化方法能不能从“写 demo”走到“做产品”。 最后 几年前我做 ZPan ,是因为有人跟我抱怨网盘不好用。 几年后我重做 ZPan ,是因为我发现“把文件放到对象存储里”这件事已经越来越普遍,但大家仍然缺一个轻量、现代、免运维、可自托管、可运营的入口。 ZPan V2 想做的就是这个入口。 如果你也受够了网盘限速,或者正在找一个自己的图床、文件分享站、团队资料库,欢迎试试 ZPan 。 GitHub: https://github.com/saltbo/zpan ZPan 官方服务: https://zpan.space Agent Kanban: https://agent-kanban.dev 如果你已经用过 V1 ,也欢迎回来看看 V2 。它还是那个基于对象存储的 ZPan ,只是这次,我想把它做得更像一个真正可以长期稳定使用的产品。

V2EX - 技术 · 2026-06-10 09:43:03+08:00 · tech

5 年前我发了 ZPan 首发!迟到一年的云存储网盘还有人需要么? 当时 ZPan 的想法很简单:既然某些网盘动不动限速、开会员也不一定省心,那为什么不直接基于对象存储搭一个自己的网盘?文件放在 OSS 、COS 、Kodo 、S3 、MinIO 这些对象存储里,ZPan 只负责用户、目录、分享、配额这些控制逻辑。上传下载尽量走预签名直链,不让服务器变成带宽瓶颈。 这个思路到今天我依然觉得是对的。 但几年后再回头看,V1 解决的是“能不能自己搭一个网盘”的问题,却没有解决“能不能长期稳定地用下去”的问题。更尴尬的是,作为 ZPan 的作者,我自己其实都没有一个长期稳定运行的 ZPan 。 这也是我重新做 ZPan V2 的起点。 连作者自己都懒得运维 以前要跑一个 ZPan ,大体上还是传统服务端应用那一套:找一台 VPS ,装环境,跑服务,配反代,配证书,配数据库,后面还要处理更新、备份、磁盘、内存、进程挂掉、系统升级这些事情。 每一件单独看都不难。 麻烦的是,它平时没事的时候你几乎感受不到成本,一旦出问题,你就必须立刻切换到运维模式。服务挂了要上去看日志,证书有问题要查配置,机器抽风要重启,磁盘满了要清理。可能一年只有几次,但每一次都很烦。 我后来发现,如果一个产品连作者自己都不愿意长期运维,那它对普通用户也很难真的友好。 所以 V2 最大的技术方向,不是简单换个前端框架,也不是把 Go 换成 TypeScript ,而是把 ZPan 往 Serverless 上迁。 现在 ZPan V2 优先支持 Cloudflare Workers ,同时也支持 Docker ,并扩展到 AWS Lambda 、Vercel 、Netlify 、Azure Functions 、Google Cloud Run 等运行环境。尤其是 Cloudflare Workers + D1 + R2 这一套,对个人用户非常合适:不需要维护 VPS ,不需要让家里的 NAS 长期开机,也不用每天担心哪天进程挂了。 这对我自己也很现实。因为我希望可以稳定地提供一个服务,而不是隔三差五被一台 VPS 叫回去救火。 ZPan 仍然是那个基于对象存储的网盘,但它不应该再要求你先成为一个合格的运维。 也正是因为 V2 走向 Serverless ,ZPan 官方现在已经上线并运营了官方网盘服务: zpan.space 。 这件事在 V1 时代其实很难下决心。因为一旦官方提供服务,就意味着我要持续维护服务器、处理故障、升级系统、盯着各种基础设施问题。对个人项目来说,这个成本很高。 但 Serverless 之后,这件事变得现实了。官方服务可以跑在更免运维的基础设施上,我不用再被服务器拖住,也能给不想自托管的普通用户提供一个稳定入口。 所以现在 ZPan 有两种使用方式:懂技术、喜欢折腾的人可以继续自托管;普通用户、不想管部署的人,可以直接使用 zpan.space 。 V2 不只是一个网盘 如果只看表面,ZPan V2 还是文件、文件夹、上传、下载、分享这些东西。 但现在我更愿意把它叫做一个 S3 原生的文件托管平台 。 这个差别在哪里呢? 传统网盘通常把“文件系统”当成核心。文件在服务器磁盘上,或者在某个网盘提供商里,应用围绕这些文件做管理。ZPan V2 的核心不是本地文件系统,也不是各种网盘账号聚合,而是一套围绕 S3 兼容对象存储的控制平面。 文件存在哪里?在 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储里。 ZPan 负责什么?负责用户、组织、团队、目录、对象元数据、上传会话、分享链接、图床路径、WebDAV 映射、配额和权益、远程下载任务、后台任务、审计、公告、授权和商业化能力。 所以 ZPan 不是要替代对象存储,而是给对象存储补上一个适合人使用、适合团队使用、适合运营使用的入口。 这也是 V2 和 V1 最大的区别。V1 更像一个“对象存储版私人网盘”,重点是替代某些限速网盘。V2 则更像一个“S3 文件工作台”,重点是把对象存储变成一个可管理、可分享、可接入工具、可运营的产品。 文件管理重新做了一遍 V2 重新做了完整的文件管理体验:上传、下载、新建文件夹、重命名、移动、复制、批量操作、搜索、回收站、文件预览、上传进度、名称冲突处理等都重新梳理了一遍。 这里面有一些看起来不显眼但很关键的变化。 比如上传不只是返回一个上传地址那么简单。V2 里有对象上传会话,可以处理更大的文件上传和分片预签名,文件先进入 draft 状态,确认上传完成之后才真正变成 active 。这样前端、对象存储、数据库记录之间不会轻易出现“文件没传完但记录已经存在”的脏状态。 再比如删除不是直接删对象,而是先进入回收站;替换文件时,旧文件也可以按规则进入回收站;批量操作会有进度和失败反馈;重名冲突可以选择替换或保留两者。 这些都不是特别适合拿来做噱头的功能点,但它们决定一个工具能不能每天用。 图床是一等场景 我自己写博客、写文档、发截图时,经常需要一个稳定的图床。以前大家会用各种免费图床,后来一个个失效;也有人直接用对象存储,但每次上传、复制链接、管理路径都不够顺手。 V2 把图床作为核心场景来做。 你可以在 ZPan 里开启图床能力,配置路径规则、访问域名、Referer 白名单,然后用 API Key 接入 PicGo 、PicList 、uPic 、ShareX 、Flameshot 这些常见工具。截图之后直接上传到自己的 ZPan ,返回的就是自己的稳定链接。 这套东西底层仍然是对象存储,但体验上更像一个图床产品。对开发者、博主来说,这个场景可能比“网盘”本身还高频。 分享不只是发一个链接 网盘最常见的动作就是分享。V2 的分享不再只是把文件丢出去,而是支持访问页、直链、密码、过期时间、下载次数限制、访问统计、下载统计,以及保存到自己网盘。 文件夹分享也不是简单暴露一个目录,而是会在分享页里继续按 ZPan 的目录模型浏览。每个用户还可以有自己的公开主页,把公开分享过的资料整理出来。 这意味着 ZPan 不只是私人存储,也可以变成一个轻量的文件发布工具。项目 release 、设计稿、安装包、课件、素材包、公开资料页,都可以用同一套分享能力完成。 团队、配额和权益 V1 更偏个人使用,V2 从一开始就有组织和团队的模型。 每个用户有自己的个人空间,也可以加入团队空间。文件、成员、角色、活动记录、配额都围绕工作空间来组织。这样 ZPan 就不只是“我自己的网盘”,也可以承担小团队内部资料库、素材库、交付文件管理这些场景。 V2 的配额模型也不再只是一个简单的数字。它有基础配额、存储权益、流量权益、当前套餐、额外包、周期流量统计等概念。这样以后不管是免费自用、团队内部分配,还是商业化售卖存储套餐,都能在同一套模型上继续发展。 这也是为什么我说 V2 不是一个简单的网盘重写。它已经开始具备“运营一个文件服务”的底层结构。 WebDAV 、后台任务和远程下载 V2 也在补齐外部访问和文件工作流。 WebDAV 可以让你把 ZPan 挂到系统文件管理器、同步工具或其他支持 WebDAV 的客户端里。它不是把对象存储密钥暴露给客户端,而是通过专用 API Key 访问 ZPan ,再由 ZPan 映射到用户有权限访问的工作空间和文件树。 后台任务则承载压缩、解压等文件处理流程。小文件 zip 压缩和解压可以直接在当前运行环境里完成,并且有任务状态、进度、失败原因和结果记录。 远程下载也不是让主站自己去长期跑下载进程。V2 的设计是 ZPan 做控制中心,下载器作为独立节点注册进来,通过心跳上报状态、能力、速度和任务进度。ZPan 负责创建任务、分配任务、展示进度、最后把完成的文件导入对象存储。 这样主站仍然保持轻量,需要网络环境和临时磁盘的工作交给下载节点。 把 WebDAV 和远程下载放在一起,就会出现一些很实用的玩法。 比如你可以把下载器部署在网络条件更合适的地方,在 ZPan 里创建远程下载任务。下载器负责把媒体资源下载下来,再上传回 ZPan 。随后你用 Infuse 、VidHub 这类媒体客户端,通过 WebDAV 连接 ZPan ,就可以直接观看这些资源。 这样 ZPan 就可以变成一个轻量的媒体资源中转和管理中心:远程下载负责把资源带回来,WebDAV 负责让播放器和客户端读到它,对象存储负责保存文件。 我也在做另一个媒体资源聚合相关的开源项目,它同样会是一个可以自托管的项目。未来它会对接 ZPan ,让用户更方便地搜索资源、一键下载,再通过 WebDAV 观看。这个项目还在开发中,有兴趣的话可以关注我的 GitHub ,后面会开源出来。 版本分层:开源、支持与商业化 V2 现在也有更清晰的版本分层:Community 、Pro 、Business 。 这里我想说清楚一点:ZPan 并不是把个人使用需要的基础能力都放到付费版里。基础文件管理、分享、图床、社交登录/OIDC 、邀请码等能力属于 Community 的核心范围。对于个人、自托管用户、小团队来说,这些能力已经可以覆盖大多数日常场景。 Community 面向个人、家庭和小范围自用。它不是残缺版本,而是完整覆盖日常网盘、图床、分享、WebDAV 这些基础需求。只是为了保持社区版的边界清晰,会有一些高级能力和规模限制。 Pro 更像一个功能解锁授权。更坦诚一点说,它也是一种对 ZPan 开源项目的支持。一个开源项目如果完全没有收入,很难长期稳定地投入时间、精力和基础设施成本。Pro 会解锁一些更高级的能力,比如自定义品牌、调整站点名称、开放注册、更多团队空间、更多存储后端、站点公告、审计日志等。它更适合重度个人用户、家庭用户、小团队,或者希望把自己的 ZPan 实例做得更完整、更像自己产品的人。 Business 才是面向“运营一个 ZPan 实例”的版本。如果你想对外营业,把 ZPan 当成一个商业化服务来运营,给用户售卖存储套餐和流量权益,或者围绕下载器、存储出口流量做 Credits 计费,那应该使用 Business 。 这个分层的原则很简单:Community 覆盖个人和家庭的完整基础体验; Pro 解锁更高级的站点和团队能力,同时支持项目继续发展; Business 面向对外运营和商业化闭环。 适合谁用 如果你是开发者、博主,想要一个自己的图床,ZPan 很适合。 如果你有 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储,但缺一个好用的 Web 管理入口,ZPan 很适合。 如果你经常要分享文件、发布资料、给别人一个稳定下载链接,ZPan 很适合。 如果你是一个小团队,想把设计素材、项目文件、交付物、内部资料统一放到一个可控的地方,ZPan 也很适合。 但如果你想要的是多人在线文档协作、企业 IM 、日历、邮件、全套办公套件,那 ZPan 不是这个方向。它不会去做一个更小的 Nextcloud ,也不会去做一个更复杂的 AList 。ZPan 会继续专注在 S3 对象存储之上的文件托管和文件工作流。 顺便聊聊 Agent Kanban 最后再聊一下这次重做的开发方式。 ZPan V2 的开发过程,基本上是通过 Agent Kanban 完成的。 我没有像过去那样一行一行地写代码,而是把自己放在产品负责人和架构负责人的位置:定产品方向、定架构边界、定工程规则、拆任务、写验收标准、做 review ,然后让 Agent 去实现。 这件事不只是“用 AI 写代码”这么简单。 过去一两年很火的 vibe coding ,更多是让用户在网页里描述一个想法,然后生成一个能看的 demo 。这个方向很有价值,但它离真实产品开发还有距离。 真实项目需要的不只是“生成代码”,还需要任务拆解、上下文管理、架构约束、测试验证、代码审查、持续迭代、问题回滚,以及多人协作里的责任边界。换句话说,它需要一套 agent harness:围绕 Agent 的任务系统、工具、状态、权限、执行环境、观测和验收机制。 Agent Kanban 想验证的就是这个方向:能不能把 vibe coding 往 harness engineering 推进一步,从一个偏 demo 的流程,推进到可以稳定交付真实产品的工程流程。 ZPan V2 算是我的一个验证场。 整个 V2 的过程中,我更像是在管理一个 Agent 团队:我定义需求和边界,Agent 负责实现;我定义验收标准,Agent 根据标准补测试、修 bug 、完善交互;我不追求一次生成一个大而全的结果,而是让每个任务都进入一个可追踪、可 review 、可验收的流程。 最后 ZPan V2 能跑起来,功能也能一轮轮补齐,至少说明这套方法是有机会的。 所以这篇文章表面上是在介绍 ZPan V2 ,背后其实也记录了另一件事:我正在用一个真实产品,验证 agent harness 这一套工程化方法能不能从“写 demo”走到“做产品”。 最后 几年前我做 ZPan ,是因为有人跟我抱怨网盘不好用。 几年后我重做 ZPan ,是因为我发现“把文件放到对象存储里”这件事已经越来越普遍,但大家仍然缺一个轻量、现代、免运维、可自托管、可运营的入口。 ZPan V2 想做的就是这个入口。 如果你也受够了网盘限速,或者正在找一个自己的图床、文件分享站、团队资料库,欢迎试试 ZPan 。 GitHub: https://github.com/saltbo/zpan ZPan 官方服务: https://zpan.space Agent Kanban: https://agent-kanban.dev 如果你已经用过 V1 ,也欢迎回来看看 V2 。它还是那个基于对象存储的 ZPan ,只是这次,我想把它做得更像一个真正可以长期稳定使用的产品。

V2EX - 技术 · 2026-06-10 08:43:03+08:00 · tech

5 年前我发了 ZPan 首发!迟到一年的云存储网盘还有人需要么? 当时 ZPan 的想法很简单:既然某些网盘动不动限速、开会员也不一定省心,那为什么不直接基于对象存储搭一个自己的网盘?文件放在 OSS 、COS 、Kodo 、S3 、MinIO 这些对象存储里,ZPan 只负责用户、目录、分享、配额这些控制逻辑。上传下载尽量走预签名直链,不让服务器变成带宽瓶颈。 这个思路到今天我依然觉得是对的。 但几年后再回头看,V1 解决的是“能不能自己搭一个网盘”的问题,却没有解决“能不能长期稳定地用下去”的问题。更尴尬的是,作为 ZPan 的作者,我自己其实都没有一个长期稳定运行的 ZPan 。 这也是我重新做 ZPan V2 的起点。 连作者自己都懒得运维 以前要跑一个 ZPan ,大体上还是传统服务端应用那一套:找一台 VPS ,装环境,跑服务,配反代,配证书,配数据库,后面还要处理更新、备份、磁盘、内存、进程挂掉、系统升级这些事情。 每一件单独看都不难。 麻烦的是,它平时没事的时候你几乎感受不到成本,一旦出问题,你就必须立刻切换到运维模式。服务挂了要上去看日志,证书有问题要查配置,机器抽风要重启,磁盘满了要清理。可能一年只有几次,但每一次都很烦。 我后来发现,如果一个产品连作者自己都不愿意长期运维,那它对普通用户也很难真的友好。 所以 V2 最大的技术方向,不是简单换个前端框架,也不是把 Go 换成 TypeScript ,而是把 ZPan 往 Serverless 上迁。 现在 ZPan V2 优先支持 Cloudflare Workers ,同时也支持 Docker ,并扩展到 AWS Lambda 、Vercel 、Netlify 、Azure Functions 、Google Cloud Run 等运行环境。尤其是 Cloudflare Workers + D1 + R2 这一套,对个人用户非常合适:不需要维护 VPS ,不需要让家里的 NAS 长期开机,也不用每天担心哪天进程挂了。 这对我自己也很现实。因为我希望可以稳定地提供一个服务,而不是隔三差五被一台 VPS 叫回去救火。 ZPan 仍然是那个基于对象存储的网盘,但它不应该再要求你先成为一个合格的运维。 也正是因为 V2 走向 Serverless ,ZPan 官方现在已经上线并运营了官方网盘服务: zpan.space 。 这件事在 V1 时代其实很难下决心。因为一旦官方提供服务,就意味着我要持续维护服务器、处理故障、升级系统、盯着各种基础设施问题。对个人项目来说,这个成本很高。 但 Serverless 之后,这件事变得现实了。官方服务可以跑在更免运维的基础设施上,我不用再被服务器拖住,也能给不想自托管的普通用户提供一个稳定入口。 所以现在 ZPan 有两种使用方式:懂技术、喜欢折腾的人可以继续自托管;普通用户、不想管部署的人,可以直接使用 zpan.space 。 V2 不只是一个网盘 如果只看表面,ZPan V2 还是文件、文件夹、上传、下载、分享这些东西。 但现在我更愿意把它叫做一个 S3 原生的文件托管平台 。 这个差别在哪里呢? 传统网盘通常把“文件系统”当成核心。文件在服务器磁盘上,或者在某个网盘提供商里,应用围绕这些文件做管理。ZPan V2 的核心不是本地文件系统,也不是各种网盘账号聚合,而是一套围绕 S3 兼容对象存储的控制平面。 文件存在哪里?在 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储里。 ZPan 负责什么?负责用户、组织、团队、目录、对象元数据、上传会话、分享链接、图床路径、WebDAV 映射、配额和权益、远程下载任务、后台任务、审计、公告、授权和商业化能力。 所以 ZPan 不是要替代对象存储,而是给对象存储补上一个适合人使用、适合团队使用、适合运营使用的入口。 这也是 V2 和 V1 最大的区别。V1 更像一个“对象存储版私人网盘”,重点是替代某些限速网盘。V2 则更像一个“S3 文件工作台”,重点是把对象存储变成一个可管理、可分享、可接入工具、可运营的产品。 文件管理重新做了一遍 V2 重新做了完整的文件管理体验:上传、下载、新建文件夹、重命名、移动、复制、批量操作、搜索、回收站、文件预览、上传进度、名称冲突处理等都重新梳理了一遍。 这里面有一些看起来不显眼但很关键的变化。 比如上传不只是返回一个上传地址那么简单。V2 里有对象上传会话,可以处理更大的文件上传和分片预签名,文件先进入 draft 状态,确认上传完成之后才真正变成 active 。这样前端、对象存储、数据库记录之间不会轻易出现“文件没传完但记录已经存在”的脏状态。 再比如删除不是直接删对象,而是先进入回收站;替换文件时,旧文件也可以按规则进入回收站;批量操作会有进度和失败反馈;重名冲突可以选择替换或保留两者。 这些都不是特别适合拿来做噱头的功能点,但它们决定一个工具能不能每天用。 图床是一等场景 我自己写博客、写文档、发截图时,经常需要一个稳定的图床。以前大家会用各种免费图床,后来一个个失效;也有人直接用对象存储,但每次上传、复制链接、管理路径都不够顺手。 V2 把图床作为核心场景来做。 你可以在 ZPan 里开启图床能力,配置路径规则、访问域名、Referer 白名单,然后用 API Key 接入 PicGo 、PicList 、uPic 、ShareX 、Flameshot 这些常见工具。截图之后直接上传到自己的 ZPan ,返回的就是自己的稳定链接。 这套东西底层仍然是对象存储,但体验上更像一个图床产品。对开发者、博主来说,这个场景可能比“网盘”本身还高频。 分享不只是发一个链接 网盘最常见的动作就是分享。V2 的分享不再只是把文件丢出去,而是支持访问页、直链、密码、过期时间、下载次数限制、访问统计、下载统计,以及保存到自己网盘。 文件夹分享也不是简单暴露一个目录,而是会在分享页里继续按 ZPan 的目录模型浏览。每个用户还可以有自己的公开主页,把公开分享过的资料整理出来。 这意味着 ZPan 不只是私人存储,也可以变成一个轻量的文件发布工具。项目 release 、设计稿、安装包、课件、素材包、公开资料页,都可以用同一套分享能力完成。 团队、配额和权益 V1 更偏个人使用,V2 从一开始就有组织和团队的模型。 每个用户有自己的个人空间,也可以加入团队空间。文件、成员、角色、活动记录、配额都围绕工作空间来组织。这样 ZPan 就不只是“我自己的网盘”,也可以承担小团队内部资料库、素材库、交付文件管理这些场景。 V2 的配额模型也不再只是一个简单的数字。它有基础配额、存储权益、流量权益、当前套餐、额外包、周期流量统计等概念。这样以后不管是免费自用、团队内部分配,还是商业化售卖存储套餐,都能在同一套模型上继续发展。 这也是为什么我说 V2 不是一个简单的网盘重写。它已经开始具备“运营一个文件服务”的底层结构。 WebDAV 、后台任务和远程下载 V2 也在补齐外部访问和文件工作流。 WebDAV 可以让你把 ZPan 挂到系统文件管理器、同步工具或其他支持 WebDAV 的客户端里。它不是把对象存储密钥暴露给客户端,而是通过专用 API Key 访问 ZPan ,再由 ZPan 映射到用户有权限访问的工作空间和文件树。 后台任务则承载压缩、解压等文件处理流程。小文件 zip 压缩和解压可以直接在当前运行环境里完成,并且有任务状态、进度、失败原因和结果记录。 远程下载也不是让主站自己去长期跑下载进程。V2 的设计是 ZPan 做控制中心,下载器作为独立节点注册进来,通过心跳上报状态、能力、速度和任务进度。ZPan 负责创建任务、分配任务、展示进度、最后把完成的文件导入对象存储。 这样主站仍然保持轻量,需要网络环境和临时磁盘的工作交给下载节点。 把 WebDAV 和远程下载放在一起,就会出现一些很实用的玩法。 比如你可以把下载器部署在网络条件更合适的地方,在 ZPan 里创建远程下载任务。下载器负责把媒体资源下载下来,再上传回 ZPan 。随后你用 Infuse 、VidHub 这类媒体客户端,通过 WebDAV 连接 ZPan ,就可以直接观看这些资源。 这样 ZPan 就可以变成一个轻量的媒体资源中转和管理中心:远程下载负责把资源带回来,WebDAV 负责让播放器和客户端读到它,对象存储负责保存文件。 我也在做另一个媒体资源聚合相关的开源项目,它同样会是一个可以自托管的项目。未来它会对接 ZPan ,让用户更方便地搜索资源、一键下载,再通过 WebDAV 观看。这个项目还在开发中,有兴趣的话可以关注我的 GitHub ,后面会开源出来。 版本分层:开源、支持与商业化 V2 现在也有更清晰的版本分层:Community 、Pro 、Business 。 这里我想说清楚一点:ZPan 并不是把个人使用需要的基础能力都放到付费版里。基础文件管理、分享、图床、社交登录/OIDC 、邀请码等能力属于 Community 的核心范围。对于个人、自托管用户、小团队来说,这些能力已经可以覆盖大多数日常场景。 Community 面向个人、家庭和小范围自用。它不是残缺版本,而是完整覆盖日常网盘、图床、分享、WebDAV 这些基础需求。只是为了保持社区版的边界清晰,会有一些高级能力和规模限制。 Pro 更像一个功能解锁授权。更坦诚一点说,它也是一种对 ZPan 开源项目的支持。一个开源项目如果完全没有收入,很难长期稳定地投入时间、精力和基础设施成本。Pro 会解锁一些更高级的能力,比如自定义品牌、调整站点名称、开放注册、更多团队空间、更多存储后端、站点公告、审计日志等。它更适合重度个人用户、家庭用户、小团队,或者希望把自己的 ZPan 实例做得更完整、更像自己产品的人。 Business 才是面向“运营一个 ZPan 实例”的版本。如果你想对外营业,把 ZPan 当成一个商业化服务来运营,给用户售卖存储套餐和流量权益,或者围绕下载器、存储出口流量做 Credits 计费,那应该使用 Business 。 这个分层的原则很简单:Community 覆盖个人和家庭的完整基础体验; Pro 解锁更高级的站点和团队能力,同时支持项目继续发展; Business 面向对外运营和商业化闭环。 适合谁用 如果你是开发者、博主,想要一个自己的图床,ZPan 很适合。 如果你有 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储,但缺一个好用的 Web 管理入口,ZPan 很适合。 如果你经常要分享文件、发布资料、给别人一个稳定下载链接,ZPan 很适合。 如果你是一个小团队,想把设计素材、项目文件、交付物、内部资料统一放到一个可控的地方,ZPan 也很适合。 但如果你想要的是多人在线文档协作、企业 IM 、日历、邮件、全套办公套件,那 ZPan 不是这个方向。它不会去做一个更小的 Nextcloud ,也不会去做一个更复杂的 AList 。ZPan 会继续专注在 S3 对象存储之上的文件托管和文件工作流。 顺便聊聊 Agent Kanban 最后再聊一下这次重做的开发方式。 ZPan V2 的开发过程,基本上是通过 Agent Kanban 完成的。 我没有像过去那样一行一行地写代码,而是把自己放在产品负责人和架构负责人的位置:定产品方向、定架构边界、定工程规则、拆任务、写验收标准、做 review ,然后让 Agent 去实现。 这件事不只是“用 AI 写代码”这么简单。 过去一两年很火的 vibe coding ,更多是让用户在网页里描述一个想法,然后生成一个能看的 demo 。这个方向很有价值,但它离真实产品开发还有距离。 真实项目需要的不只是“生成代码”,还需要任务拆解、上下文管理、架构约束、测试验证、代码审查、持续迭代、问题回滚,以及多人协作里的责任边界。换句话说,它需要一套 agent harness:围绕 Agent 的任务系统、工具、状态、权限、执行环境、观测和验收机制。 Agent Kanban 想验证的就是这个方向:能不能把 vibe coding 往 harness engineering 推进一步,从一个偏 demo 的流程,推进到可以稳定交付真实产品的工程流程。 ZPan V2 算是我的一个验证场。 整个 V2 的过程中,我更像是在管理一个 Agent 团队:我定义需求和边界,Agent 负责实现;我定义验收标准,Agent 根据标准补测试、修 bug 、完善交互;我不追求一次生成一个大而全的结果,而是让每个任务都进入一个可追踪、可 review 、可验收的流程。 最后 ZPan V2 能跑起来,功能也能一轮轮补齐,至少说明这套方法是有机会的。 所以这篇文章表面上是在介绍 ZPan V2 ,背后其实也记录了另一件事:我正在用一个真实产品,验证 agent harness 这一套工程化方法能不能从“写 demo”走到“做产品”。 最后 几年前我做 ZPan ,是因为有人跟我抱怨网盘不好用。 几年后我重做 ZPan ,是因为我发现“把文件放到对象存储里”这件事已经越来越普遍,但大家仍然缺一个轻量、现代、免运维、可自托管、可运营的入口。 ZPan V2 想做的就是这个入口。 如果你也受够了网盘限速,或者正在找一个自己的图床、文件分享站、团队资料库,欢迎试试 ZPan 。 GitHub: https://github.com/saltbo/zpan ZPan 官方服务: https://zpan.space Agent Kanban: https://agent-kanban.dev 如果你已经用过 V1 ,也欢迎回来看看 V2 。它还是那个基于对象存储的 ZPan ,只是这次,我想把它做得更像一个真正可以长期稳定使用的产品。

V2EX - 技术 · 2026-06-10 07:43:03+08:00 · tech

5 年前我发了 ZPan 首发!迟到一年的云存储网盘还有人需要么? 当时 ZPan 的想法很简单:既然某些网盘动不动限速、开会员也不一定省心,那为什么不直接基于对象存储搭一个自己的网盘?文件放在 OSS 、COS 、Kodo 、S3 、MinIO 这些对象存储里,ZPan 只负责用户、目录、分享、配额这些控制逻辑。上传下载尽量走预签名直链,不让服务器变成带宽瓶颈。 这个思路到今天我依然觉得是对的。 但几年后再回头看,V1 解决的是“能不能自己搭一个网盘”的问题,却没有解决“能不能长期稳定地用下去”的问题。更尴尬的是,作为 ZPan 的作者,我自己其实都没有一个长期稳定运行的 ZPan 。 这也是我重新做 ZPan V2 的起点。 连作者自己都懒得运维 以前要跑一个 ZPan ,大体上还是传统服务端应用那一套:找一台 VPS ,装环境,跑服务,配反代,配证书,配数据库,后面还要处理更新、备份、磁盘、内存、进程挂掉、系统升级这些事情。 每一件单独看都不难。 麻烦的是,它平时没事的时候你几乎感受不到成本,一旦出问题,你就必须立刻切换到运维模式。服务挂了要上去看日志,证书有问题要查配置,机器抽风要重启,磁盘满了要清理。可能一年只有几次,但每一次都很烦。 我后来发现,如果一个产品连作者自己都不愿意长期运维,那它对普通用户也很难真的友好。 所以 V2 最大的技术方向,不是简单换个前端框架,也不是把 Go 换成 TypeScript ,而是把 ZPan 往 Serverless 上迁。 现在 ZPan V2 优先支持 Cloudflare Workers ,同时也支持 Docker ,并扩展到 AWS Lambda 、Vercel 、Netlify 、Azure Functions 、Google Cloud Run 等运行环境。尤其是 Cloudflare Workers + D1 + R2 这一套,对个人用户非常合适:不需要维护 VPS ,不需要让家里的 NAS 长期开机,也不用每天担心哪天进程挂了。 这对我自己也很现实。因为我希望可以稳定地提供一个服务,而不是隔三差五被一台 VPS 叫回去救火。 ZPan 仍然是那个基于对象存储的网盘,但它不应该再要求你先成为一个合格的运维。 也正是因为 V2 走向 Serverless ,ZPan 官方现在已经上线并运营了官方网盘服务: zpan.space 。 这件事在 V1 时代其实很难下决心。因为一旦官方提供服务,就意味着我要持续维护服务器、处理故障、升级系统、盯着各种基础设施问题。对个人项目来说,这个成本很高。 但 Serverless 之后,这件事变得现实了。官方服务可以跑在更免运维的基础设施上,我不用再被服务器拖住,也能给不想自托管的普通用户提供一个稳定入口。 所以现在 ZPan 有两种使用方式:懂技术、喜欢折腾的人可以继续自托管;普通用户、不想管部署的人,可以直接使用 zpan.space 。 V2 不只是一个网盘 如果只看表面,ZPan V2 还是文件、文件夹、上传、下载、分享这些东西。 但现在我更愿意把它叫做一个 S3 原生的文件托管平台 。 这个差别在哪里呢? 传统网盘通常把“文件系统”当成核心。文件在服务器磁盘上,或者在某个网盘提供商里,应用围绕这些文件做管理。ZPan V2 的核心不是本地文件系统,也不是各种网盘账号聚合,而是一套围绕 S3 兼容对象存储的控制平面。 文件存在哪里?在 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储里。 ZPan 负责什么?负责用户、组织、团队、目录、对象元数据、上传会话、分享链接、图床路径、WebDAV 映射、配额和权益、远程下载任务、后台任务、审计、公告、授权和商业化能力。 所以 ZPan 不是要替代对象存储,而是给对象存储补上一个适合人使用、适合团队使用、适合运营使用的入口。 这也是 V2 和 V1 最大的区别。V1 更像一个“对象存储版私人网盘”,重点是替代某些限速网盘。V2 则更像一个“S3 文件工作台”,重点是把对象存储变成一个可管理、可分享、可接入工具、可运营的产品。 文件管理重新做了一遍 V2 重新做了完整的文件管理体验:上传、下载、新建文件夹、重命名、移动、复制、批量操作、搜索、回收站、文件预览、上传进度、名称冲突处理等都重新梳理了一遍。 这里面有一些看起来不显眼但很关键的变化。 比如上传不只是返回一个上传地址那么简单。V2 里有对象上传会话,可以处理更大的文件上传和分片预签名,文件先进入 draft 状态,确认上传完成之后才真正变成 active 。这样前端、对象存储、数据库记录之间不会轻易出现“文件没传完但记录已经存在”的脏状态。 再比如删除不是直接删对象,而是先进入回收站;替换文件时,旧文件也可以按规则进入回收站;批量操作会有进度和失败反馈;重名冲突可以选择替换或保留两者。 这些都不是特别适合拿来做噱头的功能点,但它们决定一个工具能不能每天用。 图床是一等场景 我自己写博客、写文档、发截图时,经常需要一个稳定的图床。以前大家会用各种免费图床,后来一个个失效;也有人直接用对象存储,但每次上传、复制链接、管理路径都不够顺手。 V2 把图床作为核心场景来做。 你可以在 ZPan 里开启图床能力,配置路径规则、访问域名、Referer 白名单,然后用 API Key 接入 PicGo 、PicList 、uPic 、ShareX 、Flameshot 这些常见工具。截图之后直接上传到自己的 ZPan ,返回的就是自己的稳定链接。 这套东西底层仍然是对象存储,但体验上更像一个图床产品。对开发者、博主来说,这个场景可能比“网盘”本身还高频。 分享不只是发一个链接 网盘最常见的动作就是分享。V2 的分享不再只是把文件丢出去,而是支持访问页、直链、密码、过期时间、下载次数限制、访问统计、下载统计,以及保存到自己网盘。 文件夹分享也不是简单暴露一个目录,而是会在分享页里继续按 ZPan 的目录模型浏览。每个用户还可以有自己的公开主页,把公开分享过的资料整理出来。 这意味着 ZPan 不只是私人存储,也可以变成一个轻量的文件发布工具。项目 release 、设计稿、安装包、课件、素材包、公开资料页,都可以用同一套分享能力完成。 团队、配额和权益 V1 更偏个人使用,V2 从一开始就有组织和团队的模型。 每个用户有自己的个人空间,也可以加入团队空间。文件、成员、角色、活动记录、配额都围绕工作空间来组织。这样 ZPan 就不只是“我自己的网盘”,也可以承担小团队内部资料库、素材库、交付文件管理这些场景。 V2 的配额模型也不再只是一个简单的数字。它有基础配额、存储权益、流量权益、当前套餐、额外包、周期流量统计等概念。这样以后不管是免费自用、团队内部分配,还是商业化售卖存储套餐,都能在同一套模型上继续发展。 这也是为什么我说 V2 不是一个简单的网盘重写。它已经开始具备“运营一个文件服务”的底层结构。 WebDAV 、后台任务和远程下载 V2 也在补齐外部访问和文件工作流。 WebDAV 可以让你把 ZPan 挂到系统文件管理器、同步工具或其他支持 WebDAV 的客户端里。它不是把对象存储密钥暴露给客户端,而是通过专用 API Key 访问 ZPan ,再由 ZPan 映射到用户有权限访问的工作空间和文件树。 后台任务则承载压缩、解压等文件处理流程。小文件 zip 压缩和解压可以直接在当前运行环境里完成,并且有任务状态、进度、失败原因和结果记录。 远程下载也不是让主站自己去长期跑下载进程。V2 的设计是 ZPan 做控制中心,下载器作为独立节点注册进来,通过心跳上报状态、能力、速度和任务进度。ZPan 负责创建任务、分配任务、展示进度、最后把完成的文件导入对象存储。 这样主站仍然保持轻量,需要网络环境和临时磁盘的工作交给下载节点。 把 WebDAV 和远程下载放在一起,就会出现一些很实用的玩法。 比如你可以把下载器部署在网络条件更合适的地方,在 ZPan 里创建远程下载任务。下载器负责把媒体资源下载下来,再上传回 ZPan 。随后你用 Infuse 、VidHub 这类媒体客户端,通过 WebDAV 连接 ZPan ,就可以直接观看这些资源。 这样 ZPan 就可以变成一个轻量的媒体资源中转和管理中心:远程下载负责把资源带回来,WebDAV 负责让播放器和客户端读到它,对象存储负责保存文件。 我也在做另一个媒体资源聚合相关的开源项目,它同样会是一个可以自托管的项目。未来它会对接 ZPan ,让用户更方便地搜索资源、一键下载,再通过 WebDAV 观看。这个项目还在开发中,有兴趣的话可以关注我的 GitHub ,后面会开源出来。 版本分层:开源、支持与商业化 V2 现在也有更清晰的版本分层:Community 、Pro 、Business 。 这里我想说清楚一点:ZPan 并不是把个人使用需要的基础能力都放到付费版里。基础文件管理、分享、图床、社交登录/OIDC 、邀请码等能力属于 Community 的核心范围。对于个人、自托管用户、小团队来说,这些能力已经可以覆盖大多数日常场景。 Community 面向个人、家庭和小范围自用。它不是残缺版本,而是完整覆盖日常网盘、图床、分享、WebDAV 这些基础需求。只是为了保持社区版的边界清晰,会有一些高级能力和规模限制。 Pro 更像一个功能解锁授权。更坦诚一点说,它也是一种对 ZPan 开源项目的支持。一个开源项目如果完全没有收入,很难长期稳定地投入时间、精力和基础设施成本。Pro 会解锁一些更高级的能力,比如自定义品牌、调整站点名称、开放注册、更多团队空间、更多存储后端、站点公告、审计日志等。它更适合重度个人用户、家庭用户、小团队,或者希望把自己的 ZPan 实例做得更完整、更像自己产品的人。 Business 才是面向“运营一个 ZPan 实例”的版本。如果你想对外营业,把 ZPan 当成一个商业化服务来运营,给用户售卖存储套餐和流量权益,或者围绕下载器、存储出口流量做 Credits 计费,那应该使用 Business 。 这个分层的原则很简单:Community 覆盖个人和家庭的完整基础体验; Pro 解锁更高级的站点和团队能力,同时支持项目继续发展; Business 面向对外运营和商业化闭环。 适合谁用 如果你是开发者、博主,想要一个自己的图床,ZPan 很适合。 如果你有 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储,但缺一个好用的 Web 管理入口,ZPan 很适合。 如果你经常要分享文件、发布资料、给别人一个稳定下载链接,ZPan 很适合。 如果你是一个小团队,想把设计素材、项目文件、交付物、内部资料统一放到一个可控的地方,ZPan 也很适合。 但如果你想要的是多人在线文档协作、企业 IM 、日历、邮件、全套办公套件,那 ZPan 不是这个方向。它不会去做一个更小的 Nextcloud ,也不会去做一个更复杂的 AList 。ZPan 会继续专注在 S3 对象存储之上的文件托管和文件工作流。 顺便聊聊 Agent Kanban 最后再聊一下这次重做的开发方式。 ZPan V2 的开发过程,基本上是通过 Agent Kanban 完成的。 我没有像过去那样一行一行地写代码,而是把自己放在产品负责人和架构负责人的位置:定产品方向、定架构边界、定工程规则、拆任务、写验收标准、做 review ,然后让 Agent 去实现。 这件事不只是“用 AI 写代码”这么简单。 过去一两年很火的 vibe coding ,更多是让用户在网页里描述一个想法,然后生成一个能看的 demo 。这个方向很有价值,但它离真实产品开发还有距离。 真实项目需要的不只是“生成代码”,还需要任务拆解、上下文管理、架构约束、测试验证、代码审查、持续迭代、问题回滚,以及多人协作里的责任边界。换句话说,它需要一套 agent harness:围绕 Agent 的任务系统、工具、状态、权限、执行环境、观测和验收机制。 Agent Kanban 想验证的就是这个方向:能不能把 vibe coding 往 harness engineering 推进一步,从一个偏 demo 的流程,推进到可以稳定交付真实产品的工程流程。 ZPan V2 算是我的一个验证场。 整个 V2 的过程中,我更像是在管理一个 Agent 团队:我定义需求和边界,Agent 负责实现;我定义验收标准,Agent 根据标准补测试、修 bug 、完善交互;我不追求一次生成一个大而全的结果,而是让每个任务都进入一个可追踪、可 review 、可验收的流程。 最后 ZPan V2 能跑起来,功能也能一轮轮补齐,至少说明这套方法是有机会的。 所以这篇文章表面上是在介绍 ZPan V2 ,背后其实也记录了另一件事:我正在用一个真实产品,验证 agent harness 这一套工程化方法能不能从“写 demo”走到“做产品”。 最后 几年前我做 ZPan ,是因为有人跟我抱怨网盘不好用。 几年后我重做 ZPan ,是因为我发现“把文件放到对象存储里”这件事已经越来越普遍,但大家仍然缺一个轻量、现代、免运维、可自托管、可运营的入口。 ZPan V2 想做的就是这个入口。 如果你也受够了网盘限速,或者正在找一个自己的图床、文件分享站、团队资料库,欢迎试试 ZPan 。 GitHub: https://github.com/saltbo/zpan ZPan 官方服务: https://zpan.space Agent Kanban: https://agent-kanban.dev 如果你已经用过 V1 ,也欢迎回来看看 V2 。它还是那个基于对象存储的 ZPan ,只是这次,我想把它做得更像一个真正可以长期稳定使用的产品。

V2EX - 技术 · 2026-06-10 07:43:03+08:00 · tech

5 年前我发了 ZPan 首发!迟到一年的云存储网盘还有人需要么? 当时 ZPan 的想法很简单:既然某些网盘动不动限速、开会员也不一定省心,那为什么不直接基于对象存储搭一个自己的网盘?文件放在 OSS 、COS 、Kodo 、S3 、MinIO 这些对象存储里,ZPan 只负责用户、目录、分享、配额这些控制逻辑。上传下载尽量走预签名直链,不让服务器变成带宽瓶颈。 这个思路到今天我依然觉得是对的。 但几年后再回头看,V1 解决的是“能不能自己搭一个网盘”的问题,却没有解决“能不能长期稳定地用下去”的问题。更尴尬的是,作为 ZPan 的作者,我自己其实都没有一个长期稳定运行的 ZPan 。 这也是我重新做 ZPan V2 的起点。 连作者自己都懒得运维 以前要跑一个 ZPan ,大体上还是传统服务端应用那一套:找一台 VPS ,装环境,跑服务,配反代,配证书,配数据库,后面还要处理更新、备份、磁盘、内存、进程挂掉、系统升级这些事情。 每一件单独看都不难。 麻烦的是,它平时没事的时候你几乎感受不到成本,一旦出问题,你就必须立刻切换到运维模式。服务挂了要上去看日志,证书有问题要查配置,机器抽风要重启,磁盘满了要清理。可能一年只有几次,但每一次都很烦。 我后来发现,如果一个产品连作者自己都不愿意长期运维,那它对普通用户也很难真的友好。 所以 V2 最大的技术方向,不是简单换个前端框架,也不是把 Go 换成 TypeScript ,而是把 ZPan 往 Serverless 上迁。 现在 ZPan V2 优先支持 Cloudflare Workers ,同时也支持 Docker ,并扩展到 AWS Lambda 、Vercel 、Netlify 、Azure Functions 、Google Cloud Run 等运行环境。尤其是 Cloudflare Workers + D1 + R2 这一套,对个人用户非常合适:不需要维护 VPS ,不需要让家里的 NAS 长期开机,也不用每天担心哪天进程挂了。 这对我自己也很现实。因为我希望可以稳定地提供一个服务,而不是隔三差五被一台 VPS 叫回去救火。 ZPan 仍然是那个基于对象存储的网盘,但它不应该再要求你先成为一个合格的运维。 也正是因为 V2 走向 Serverless ,ZPan 官方现在已经上线并运营了官方网盘服务: zpan.space 。 这件事在 V1 时代其实很难下决心。因为一旦官方提供服务,就意味着我要持续维护服务器、处理故障、升级系统、盯着各种基础设施问题。对个人项目来说,这个成本很高。 但 Serverless 之后,这件事变得现实了。官方服务可以跑在更免运维的基础设施上,我不用再被服务器拖住,也能给不想自托管的普通用户提供一个稳定入口。 所以现在 ZPan 有两种使用方式:懂技术、喜欢折腾的人可以继续自托管;普通用户、不想管部署的人,可以直接使用 zpan.space 。 V2 不只是一个网盘 如果只看表面,ZPan V2 还是文件、文件夹、上传、下载、分享这些东西。 但现在我更愿意把它叫做一个 S3 原生的文件托管平台 。 这个差别在哪里呢? 传统网盘通常把“文件系统”当成核心。文件在服务器磁盘上,或者在某个网盘提供商里,应用围绕这些文件做管理。ZPan V2 的核心不是本地文件系统,也不是各种网盘账号聚合,而是一套围绕 S3 兼容对象存储的控制平面。 文件存在哪里?在 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储里。 ZPan 负责什么?负责用户、组织、团队、目录、对象元数据、上传会话、分享链接、图床路径、WebDAV 映射、配额和权益、远程下载任务、后台任务、审计、公告、授权和商业化能力。 所以 ZPan 不是要替代对象存储,而是给对象存储补上一个适合人使用、适合团队使用、适合运营使用的入口。 这也是 V2 和 V1 最大的区别。V1 更像一个“对象存储版私人网盘”,重点是替代某些限速网盘。V2 则更像一个“S3 文件工作台”,重点是把对象存储变成一个可管理、可分享、可接入工具、可运营的产品。 文件管理重新做了一遍 V2 重新做了完整的文件管理体验:上传、下载、新建文件夹、重命名、移动、复制、批量操作、搜索、回收站、文件预览、上传进度、名称冲突处理等都重新梳理了一遍。 这里面有一些看起来不显眼但很关键的变化。 比如上传不只是返回一个上传地址那么简单。V2 里有对象上传会话,可以处理更大的文件上传和分片预签名,文件先进入 draft 状态,确认上传完成之后才真正变成 active 。这样前端、对象存储、数据库记录之间不会轻易出现“文件没传完但记录已经存在”的脏状态。 再比如删除不是直接删对象,而是先进入回收站;替换文件时,旧文件也可以按规则进入回收站;批量操作会有进度和失败反馈;重名冲突可以选择替换或保留两者。 这些都不是特别适合拿来做噱头的功能点,但它们决定一个工具能不能每天用。 图床是一等场景 我自己写博客、写文档、发截图时,经常需要一个稳定的图床。以前大家会用各种免费图床,后来一个个失效;也有人直接用对象存储,但每次上传、复制链接、管理路径都不够顺手。 V2 把图床作为核心场景来做。 你可以在 ZPan 里开启图床能力,配置路径规则、访问域名、Referer 白名单,然后用 API Key 接入 PicGo 、PicList 、uPic 、ShareX 、Flameshot 这些常见工具。截图之后直接上传到自己的 ZPan ,返回的就是自己的稳定链接。 这套东西底层仍然是对象存储,但体验上更像一个图床产品。对开发者、博主来说,这个场景可能比“网盘”本身还高频。 分享不只是发一个链接 网盘最常见的动作就是分享。V2 的分享不再只是把文件丢出去,而是支持访问页、直链、密码、过期时间、下载次数限制、访问统计、下载统计,以及保存到自己网盘。 文件夹分享也不是简单暴露一个目录,而是会在分享页里继续按 ZPan 的目录模型浏览。每个用户还可以有自己的公开主页,把公开分享过的资料整理出来。 这意味着 ZPan 不只是私人存储,也可以变成一个轻量的文件发布工具。项目 release 、设计稿、安装包、课件、素材包、公开资料页,都可以用同一套分享能力完成。 团队、配额和权益 V1 更偏个人使用,V2 从一开始就有组织和团队的模型。 每个用户有自己的个人空间,也可以加入团队空间。文件、成员、角色、活动记录、配额都围绕工作空间来组织。这样 ZPan 就不只是“我自己的网盘”,也可以承担小团队内部资料库、素材库、交付文件管理这些场景。 V2 的配额模型也不再只是一个简单的数字。它有基础配额、存储权益、流量权益、当前套餐、额外包、周期流量统计等概念。这样以后不管是免费自用、团队内部分配,还是商业化售卖存储套餐,都能在同一套模型上继续发展。 这也是为什么我说 V2 不是一个简单的网盘重写。它已经开始具备“运营一个文件服务”的底层结构。 WebDAV 、后台任务和远程下载 V2 也在补齐外部访问和文件工作流。 WebDAV 可以让你把 ZPan 挂到系统文件管理器、同步工具或其他支持 WebDAV 的客户端里。它不是把对象存储密钥暴露给客户端,而是通过专用 API Key 访问 ZPan ,再由 ZPan 映射到用户有权限访问的工作空间和文件树。 后台任务则承载压缩、解压等文件处理流程。小文件 zip 压缩和解压可以直接在当前运行环境里完成,并且有任务状态、进度、失败原因和结果记录。 远程下载也不是让主站自己去长期跑下载进程。V2 的设计是 ZPan 做控制中心,下载器作为独立节点注册进来,通过心跳上报状态、能力、速度和任务进度。ZPan 负责创建任务、分配任务、展示进度、最后把完成的文件导入对象存储。 这样主站仍然保持轻量,需要网络环境和临时磁盘的工作交给下载节点。 把 WebDAV 和远程下载放在一起,就会出现一些很实用的玩法。 比如你可以把下载器部署在网络条件更合适的地方,在 ZPan 里创建远程下载任务。下载器负责把媒体资源下载下来,再上传回 ZPan 。随后你用 Infuse 、VidHub 这类媒体客户端,通过 WebDAV 连接 ZPan ,就可以直接观看这些资源。 这样 ZPan 就可以变成一个轻量的媒体资源中转和管理中心:远程下载负责把资源带回来,WebDAV 负责让播放器和客户端读到它,对象存储负责保存文件。 我也在做另一个媒体资源聚合相关的开源项目,它同样会是一个可以自托管的项目。未来它会对接 ZPan ,让用户更方便地搜索资源、一键下载,再通过 WebDAV 观看。这个项目还在开发中,有兴趣的话可以关注我的 GitHub ,后面会开源出来。 版本分层:开源、支持与商业化 V2 现在也有更清晰的版本分层:Community 、Pro 、Business 。 这里我想说清楚一点:ZPan 并不是把个人使用需要的基础能力都放到付费版里。基础文件管理、分享、图床、社交登录/OIDC 、邀请码等能力属于 Community 的核心范围。对于个人、自托管用户、小团队来说,这些能力已经可以覆盖大多数日常场景。 Community 面向个人、家庭和小范围自用。它不是残缺版本,而是完整覆盖日常网盘、图床、分享、WebDAV 这些基础需求。只是为了保持社区版的边界清晰,会有一些高级能力和规模限制。 Pro 更像一个功能解锁授权。更坦诚一点说,它也是一种对 ZPan 开源项目的支持。一个开源项目如果完全没有收入,很难长期稳定地投入时间、精力和基础设施成本。Pro 会解锁一些更高级的能力,比如自定义品牌、调整站点名称、开放注册、更多团队空间、更多存储后端、站点公告、审计日志等。它更适合重度个人用户、家庭用户、小团队,或者希望把自己的 ZPan 实例做得更完整、更像自己产品的人。 Business 才是面向“运营一个 ZPan 实例”的版本。如果你想对外营业,把 ZPan 当成一个商业化服务来运营,给用户售卖存储套餐和流量权益,或者围绕下载器、存储出口流量做 Credits 计费,那应该使用 Business 。 这个分层的原则很简单:Community 覆盖个人和家庭的完整基础体验; Pro 解锁更高级的站点和团队能力,同时支持项目继续发展; Business 面向对外运营和商业化闭环。 适合谁用 如果你是开发者、博主,想要一个自己的图床,ZPan 很适合。 如果你有 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储,但缺一个好用的 Web 管理入口,ZPan 很适合。 如果你经常要分享文件、发布资料、给别人一个稳定下载链接,ZPan 很适合。 如果你是一个小团队,想把设计素材、项目文件、交付物、内部资料统一放到一个可控的地方,ZPan 也很适合。 但如果你想要的是多人在线文档协作、企业 IM 、日历、邮件、全套办公套件,那 ZPan 不是这个方向。它不会去做一个更小的 Nextcloud ,也不会去做一个更复杂的 AList 。ZPan 会继续专注在 S3 对象存储之上的文件托管和文件工作流。 顺便聊聊 Agent Kanban 最后再聊一下这次重做的开发方式。 ZPan V2 的开发过程,基本上是通过 Agent Kanban 完成的。 我没有像过去那样一行一行地写代码,而是把自己放在产品负责人和架构负责人的位置:定产品方向、定架构边界、定工程规则、拆任务、写验收标准、做 review ,然后让 Agent 去实现。 这件事不只是“用 AI 写代码”这么简单。 过去一两年很火的 vibe coding ,更多是让用户在网页里描述一个想法,然后生成一个能看的 demo 。这个方向很有价值,但它离真实产品开发还有距离。 真实项目需要的不只是“生成代码”,还需要任务拆解、上下文管理、架构约束、测试验证、代码审查、持续迭代、问题回滚,以及多人协作里的责任边界。换句话说,它需要一套 agent harness:围绕 Agent 的任务系统、工具、状态、权限、执行环境、观测和验收机制。 Agent Kanban 想验证的就是这个方向:能不能把 vibe coding 往 harness engineering 推进一步,从一个偏 demo 的流程,推进到可以稳定交付真实产品的工程流程。 ZPan V2 算是我的一个验证场。 整个 V2 的过程中,我更像是在管理一个 Agent 团队:我定义需求和边界,Agent 负责实现;我定义验收标准,Agent 根据标准补测试、修 bug 、完善交互;我不追求一次生成一个大而全的结果,而是让每个任务都进入一个可追踪、可 review 、可验收的流程。 最后 ZPan V2 能跑起来,功能也能一轮轮补齐,至少说明这套方法是有机会的。 所以这篇文章表面上是在介绍 ZPan V2 ,背后其实也记录了另一件事:我正在用一个真实产品,验证 agent harness 这一套工程化方法能不能从“写 demo”走到“做产品”。 最后 几年前我做 ZPan ,是因为有人跟我抱怨网盘不好用。 几年后我重做 ZPan ,是因为我发现“把文件放到对象存储里”这件事已经越来越普遍,但大家仍然缺一个轻量、现代、免运维、可自托管、可运营的入口。 ZPan V2 想做的就是这个入口。 如果你也受够了网盘限速,或者正在找一个自己的图床、文件分享站、团队资料库,欢迎试试 ZPan 。 GitHub: https://github.com/saltbo/zpan ZPan 官方服务: https://zpan.space Agent Kanban: https://agent-kanban.dev 如果你已经用过 V1 ,也欢迎回来看看 V2 。它还是那个基于对象存储的 ZPan ,只是这次,我想把它做得更像一个真正可以长期稳定使用的产品。

V2EX - 技术 · 2026-06-10 07:43:03+08:00 · tech

5 年前我发了 ZPan 首发!迟到一年的云存储网盘还有人需要么? 当时 ZPan 的想法很简单:既然某些网盘动不动限速、开会员也不一定省心,那为什么不直接基于对象存储搭一个自己的网盘?文件放在 OSS 、COS 、Kodo 、S3 、MinIO 这些对象存储里,ZPan 只负责用户、目录、分享、配额这些控制逻辑。上传下载尽量走预签名直链,不让服务器变成带宽瓶颈。 这个思路到今天我依然觉得是对的。 但几年后再回头看,V1 解决的是“能不能自己搭一个网盘”的问题,却没有解决“能不能长期稳定地用下去”的问题。更尴尬的是,作为 ZPan 的作者,我自己其实都没有一个长期稳定运行的 ZPan 。 这也是我重新做 ZPan V2 的起点。 连作者自己都懒得运维 以前要跑一个 ZPan ,大体上还是传统服务端应用那一套:找一台 VPS ,装环境,跑服务,配反代,配证书,配数据库,后面还要处理更新、备份、磁盘、内存、进程挂掉、系统升级这些事情。 每一件单独看都不难。 麻烦的是,它平时没事的时候你几乎感受不到成本,一旦出问题,你就必须立刻切换到运维模式。服务挂了要上去看日志,证书有问题要查配置,机器抽风要重启,磁盘满了要清理。可能一年只有几次,但每一次都很烦。 我后来发现,如果一个产品连作者自己都不愿意长期运维,那它对普通用户也很难真的友好。 所以 V2 最大的技术方向,不是简单换个前端框架,也不是把 Go 换成 TypeScript ,而是把 ZPan 往 Serverless 上迁。 现在 ZPan V2 优先支持 Cloudflare Workers ,同时也支持 Docker ,并扩展到 AWS Lambda 、Vercel 、Netlify 、Azure Functions 、Google Cloud Run 等运行环境。尤其是 Cloudflare Workers + D1 + R2 这一套,对个人用户非常合适:不需要维护 VPS ,不需要让家里的 NAS 长期开机,也不用每天担心哪天进程挂了。 这对我自己也很现实。因为我希望可以稳定地提供一个服务,而不是隔三差五被一台 VPS 叫回去救火。 ZPan 仍然是那个基于对象存储的网盘,但它不应该再要求你先成为一个合格的运维。 也正是因为 V2 走向 Serverless ,ZPan 官方现在已经上线并运营了官方网盘服务: zpan.space 。 这件事在 V1 时代其实很难下决心。因为一旦官方提供服务,就意味着我要持续维护服务器、处理故障、升级系统、盯着各种基础设施问题。对个人项目来说,这个成本很高。 但 Serverless 之后,这件事变得现实了。官方服务可以跑在更免运维的基础设施上,我不用再被服务器拖住,也能给不想自托管的普通用户提供一个稳定入口。 所以现在 ZPan 有两种使用方式:懂技术、喜欢折腾的人可以继续自托管;普通用户、不想管部署的人,可以直接使用 zpan.space 。 V2 不只是一个网盘 如果只看表面,ZPan V2 还是文件、文件夹、上传、下载、分享这些东西。 但现在我更愿意把它叫做一个 S3 原生的文件托管平台 。 这个差别在哪里呢? 传统网盘通常把“文件系统”当成核心。文件在服务器磁盘上,或者在某个网盘提供商里,应用围绕这些文件做管理。ZPan V2 的核心不是本地文件系统,也不是各种网盘账号聚合,而是一套围绕 S3 兼容对象存储的控制平面。 文件存在哪里?在 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储里。 ZPan 负责什么?负责用户、组织、团队、目录、对象元数据、上传会话、分享链接、图床路径、WebDAV 映射、配额和权益、远程下载任务、后台任务、审计、公告、授权和商业化能力。 所以 ZPan 不是要替代对象存储,而是给对象存储补上一个适合人使用、适合团队使用、适合运营使用的入口。 这也是 V2 和 V1 最大的区别。V1 更像一个“对象存储版私人网盘”,重点是替代某些限速网盘。V2 则更像一个“S3 文件工作台”,重点是把对象存储变成一个可管理、可分享、可接入工具、可运营的产品。 文件管理重新做了一遍 V2 重新做了完整的文件管理体验:上传、下载、新建文件夹、重命名、移动、复制、批量操作、搜索、回收站、文件预览、上传进度、名称冲突处理等都重新梳理了一遍。 这里面有一些看起来不显眼但很关键的变化。 比如上传不只是返回一个上传地址那么简单。V2 里有对象上传会话,可以处理更大的文件上传和分片预签名,文件先进入 draft 状态,确认上传完成之后才真正变成 active 。这样前端、对象存储、数据库记录之间不会轻易出现“文件没传完但记录已经存在”的脏状态。 再比如删除不是直接删对象,而是先进入回收站;替换文件时,旧文件也可以按规则进入回收站;批量操作会有进度和失败反馈;重名冲突可以选择替换或保留两者。 这些都不是特别适合拿来做噱头的功能点,但它们决定一个工具能不能每天用。 图床是一等场景 我自己写博客、写文档、发截图时,经常需要一个稳定的图床。以前大家会用各种免费图床,后来一个个失效;也有人直接用对象存储,但每次上传、复制链接、管理路径都不够顺手。 V2 把图床作为核心场景来做。 你可以在 ZPan 里开启图床能力,配置路径规则、访问域名、Referer 白名单,然后用 API Key 接入 PicGo 、PicList 、uPic 、ShareX 、Flameshot 这些常见工具。截图之后直接上传到自己的 ZPan ,返回的就是自己的稳定链接。 这套东西底层仍然是对象存储,但体验上更像一个图床产品。对开发者、博主来说,这个场景可能比“网盘”本身还高频。 分享不只是发一个链接 网盘最常见的动作就是分享。V2 的分享不再只是把文件丢出去,而是支持访问页、直链、密码、过期时间、下载次数限制、访问统计、下载统计,以及保存到自己网盘。 文件夹分享也不是简单暴露一个目录,而是会在分享页里继续按 ZPan 的目录模型浏览。每个用户还可以有自己的公开主页,把公开分享过的资料整理出来。 这意味着 ZPan 不只是私人存储,也可以变成一个轻量的文件发布工具。项目 release 、设计稿、安装包、课件、素材包、公开资料页,都可以用同一套分享能力完成。 团队、配额和权益 V1 更偏个人使用,V2 从一开始就有组织和团队的模型。 每个用户有自己的个人空间,也可以加入团队空间。文件、成员、角色、活动记录、配额都围绕工作空间来组织。这样 ZPan 就不只是“我自己的网盘”,也可以承担小团队内部资料库、素材库、交付文件管理这些场景。 V2 的配额模型也不再只是一个简单的数字。它有基础配额、存储权益、流量权益、当前套餐、额外包、周期流量统计等概念。这样以后不管是免费自用、团队内部分配,还是商业化售卖存储套餐,都能在同一套模型上继续发展。 这也是为什么我说 V2 不是一个简单的网盘重写。它已经开始具备“运营一个文件服务”的底层结构。 WebDAV 、后台任务和远程下载 V2 也在补齐外部访问和文件工作流。 WebDAV 可以让你把 ZPan 挂到系统文件管理器、同步工具或其他支持 WebDAV 的客户端里。它不是把对象存储密钥暴露给客户端,而是通过专用 API Key 访问 ZPan ,再由 ZPan 映射到用户有权限访问的工作空间和文件树。 后台任务则承载压缩、解压等文件处理流程。小文件 zip 压缩和解压可以直接在当前运行环境里完成,并且有任务状态、进度、失败原因和结果记录。 远程下载也不是让主站自己去长期跑下载进程。V2 的设计是 ZPan 做控制中心,下载器作为独立节点注册进来,通过心跳上报状态、能力、速度和任务进度。ZPan 负责创建任务、分配任务、展示进度、最后把完成的文件导入对象存储。 这样主站仍然保持轻量,需要网络环境和临时磁盘的工作交给下载节点。 把 WebDAV 和远程下载放在一起,就会出现一些很实用的玩法。 比如你可以把下载器部署在网络条件更合适的地方,在 ZPan 里创建远程下载任务。下载器负责把媒体资源下载下来,再上传回 ZPan 。随后你用 Infuse 、VidHub 这类媒体客户端,通过 WebDAV 连接 ZPan ,就可以直接观看这些资源。 这样 ZPan 就可以变成一个轻量的媒体资源中转和管理中心:远程下载负责把资源带回来,WebDAV 负责让播放器和客户端读到它,对象存储负责保存文件。 我也在做另一个媒体资源聚合相关的开源项目,它同样会是一个可以自托管的项目。未来它会对接 ZPan ,让用户更方便地搜索资源、一键下载,再通过 WebDAV 观看。这个项目还在开发中,有兴趣的话可以关注我的 GitHub ,后面会开源出来。 版本分层:开源、支持与商业化 V2 现在也有更清晰的版本分层:Community 、Pro 、Business 。 这里我想说清楚一点:ZPan 并不是把个人使用需要的基础能力都放到付费版里。基础文件管理、分享、图床、社交登录/OIDC 、邀请码等能力属于 Community 的核心范围。对于个人、自托管用户、小团队来说,这些能力已经可以覆盖大多数日常场景。 Community 面向个人、家庭和小范围自用。它不是残缺版本,而是完整覆盖日常网盘、图床、分享、WebDAV 这些基础需求。只是为了保持社区版的边界清晰,会有一些高级能力和规模限制。 Pro 更像一个功能解锁授权。更坦诚一点说,它也是一种对 ZPan 开源项目的支持。一个开源项目如果完全没有收入,很难长期稳定地投入时间、精力和基础设施成本。Pro 会解锁一些更高级的能力,比如自定义品牌、调整站点名称、开放注册、更多团队空间、更多存储后端、站点公告、审计日志等。它更适合重度个人用户、家庭用户、小团队,或者希望把自己的 ZPan 实例做得更完整、更像自己产品的人。 Business 才是面向“运营一个 ZPan 实例”的版本。如果你想对外营业,把 ZPan 当成一个商业化服务来运营,给用户售卖存储套餐和流量权益,或者围绕下载器、存储出口流量做 Credits 计费,那应该使用 Business 。 这个分层的原则很简单:Community 覆盖个人和家庭的完整基础体验; Pro 解锁更高级的站点和团队能力,同时支持项目继续发展; Business 面向对外运营和商业化闭环。 适合谁用 如果你是开发者、博主,想要一个自己的图床,ZPan 很适合。 如果你有 R2 、S3 、B2 、OSS 、COS 、MinIO 、RustFS 、Tigris 这些对象存储,但缺一个好用的 Web 管理入口,ZPan 很适合。 如果你经常要分享文件、发布资料、给别人一个稳定下载链接,ZPan 很适合。 如果你是一个小团队,想把设计素材、项目文件、交付物、内部资料统一放到一个可控的地方,ZPan 也很适合。 但如果你想要的是多人在线文档协作、企业 IM 、日历、邮件、全套办公套件,那 ZPan 不是这个方向。它不会去做一个更小的 Nextcloud ,也不会去做一个更复杂的 AList 。ZPan 会继续专注在 S3 对象存储之上的文件托管和文件工作流。 顺便聊聊 Agent Kanban 最后再聊一下这次重做的开发方式。 ZPan V2 的开发过程,基本上是通过 Agent Kanban 完成的。 我没有像过去那样一行一行地写代码,而是把自己放在产品负责人和架构负责人的位置:定产品方向、定架构边界、定工程规则、拆任务、写验收标准、做 review ,然后让 Agent 去实现。 这件事不只是“用 AI 写代码”这么简单。 过去一两年很火的 vibe coding ,更多是让用户在网页里描述一个想法,然后生成一个能看的 demo 。这个方向很有价值,但它离真实产品开发还有距离。 真实项目需要的不只是“生成代码”,还需要任务拆解、上下文管理、架构约束、测试验证、代码审查、持续迭代、问题回滚,以及多人协作里的责任边界。换句话说,它需要一套 agent harness:围绕 Agent 的任务系统、工具、状态、权限、执行环境、观测和验收机制。 Agent Kanban 想验证的就是这个方向:能不能把 vibe coding 往 harness engineering 推进一步,从一个偏 demo 的流程,推进到可以稳定交付真实产品的工程流程。 ZPan V2 算是我的一个验证场。 整个 V2 的过程中,我更像是在管理一个 Agent 团队:我定义需求和边界,Agent 负责实现;我定义验收标准,Agent 根据标准补测试、修 bug 、完善交互;我不追求一次生成一个大而全的结果,而是让每个任务都进入一个可追踪、可 review 、可验收的流程。 最后 ZPan V2 能跑起来,功能也能一轮轮补齐,至少说明这套方法是有机会的。 所以这篇文章表面上是在介绍 ZPan V2 ,背后其实也记录了另一件事:我正在用一个真实产品,验证 agent harness 这一套工程化方法能不能从“写 demo”走到“做产品”。 最后 几年前我做 ZPan ,是因为有人跟我抱怨网盘不好用。 几年后我重做 ZPan ,是因为我发现“把文件放到对象存储里”这件事已经越来越普遍,但大家仍然缺一个轻量、现代、免运维、可自托管、可运营的入口。 ZPan V2 想做的就是这个入口。 如果你也受够了网盘限速,或者正在找一个自己的图床、文件分享站、团队资料库,欢迎试试 ZPan 。 GitHub: https://github.com/saltbo/zpan ZPan 官方服务: https://zpan.space Agent Kanban: https://agent-kanban.dev 如果你已经用过 V1 ,也欢迎回来看看 V2 。它还是那个基于对象存储的 ZPan ,只是这次,我想把它做得更像一个真正可以长期稳定使用的产品。

v2ex · 2026-06-09 17:36:25+08:00 · tech

我们上线了 Pangolinfo MCP 服务 大家好,我是 Pangolinfo 的开发同学,今天不写官方公告,跟大家直白聊聊我们刚上线的 Amazon Data MCP 服务,包括为什么做、现在能干嘛,以及还有哪些做得不好的地方。 为什么做这个 我们原来一直做 Amazon Scraper API ,服务跨境卖家和开发者。过去一年有个特别明显的趋势: 越来越多的用户不再直接调 API ,而是想把数据直接接入 Claude 、Cursor 、Cline 这些 AI 工具里,让 Agent 自己去取数据、做决策 。 但现在的接入方式特别零散,每个人都在自己造轮子:有人让 AI 写爬虫脚本,有人自己封装 REST 调用,还有人搭各种中间层转发。我们看下来觉得,这块其实可以做得更干净、更标准一点,于是就按照 MCP 协议把我们的核心接口重新封装了一遍。 现在能干什么 目前一共开放了 19 个工具 ,覆盖四个核心场景: 亚马逊核心数据 关键词搜索(含广告位分布、自然排名、各类徽章) 商品详情(基础信息、变体、价格、图片) 评论抓取(支持批量、带用户信息和时间戳) 卖家主页数据 ✨ 亮点: get_amazon_product 内置了 AI 评论摘要字段,一次调用直接返回好评/差评核心要点,不用自己分页抓 review 再做 NLP 处理 类目与选品分析 完整类目树导航与搜索 ✨ 亮点: filter_niches 工具,输入关键词或类目节点,返回 50+ 市场健康度指标 ,重点包含新品突围率、头部品牌集中度、价格带分布这些真正影响选品决策的数据,不只是看搜索量高低 Google AI 趋势 ai_search 直连 Google AI Overview 和 AI Mode 实时数据 可以捕捉还没在亚马逊站内成型、但已经在全网发酵的早期需求趋势 IP 合规 wipo_search :查询全球商标信息 pacer_search :查询美国专利诉讼案件详情及历史时间线 特别适合 POD 、外观类目的卖家在上新前做前置风险排查 补充:MCP vs REST API 怎么选? 我们的 Amazon Data MCP 和 Amazon Scraper API 运行在完全相同的数据引擎上,共享同一套积点计费体系,只是服务于不同的工作流: 选 MCP:适合在 Claude 、Cursor 等 AI 工具里做交互式研究、临时数据查询,让 AI 自动帮你调用和串联工具,零代码上手 选 REST API:适合批量抓取、定时任务、CI/CD 流水线或系统集成,需要完全自主控制请求和并发 接入方式 零安装零依赖,纯远程 HTTP 接入 。只需要在你的 MCP 客户端配置文件里加一段 JSON ,重启客户端就能用: { "mcpServers": { "pangolinfo": { "url": "https://mcp.pangolinfo.com/mcp", "headers": { "Authorization": "Bearer <YOUR_API_KEY>" } } } } 目前已完整支持:Claude Code 、Cursor 、Cline 、Windsurf 、Codex 、Hermes 、OpenClaw , 同一份配置在所有客户端通用 。 ⚠️ 重要提示:API Key 请在控制台申请 长期 Key ,短期 Key 会静默过期导致工作流中断,这个坑我们在文档里也重点标注了。 说几个现在还不完善的地方 不吹不黑,目前还有不少问题,提前跟大家说清楚: 工具数量上 :19 个覆盖了主要场景,但还有一些边缘需求没做 待开发:FBA 库存数据、A+ 内容解析、Buy Box 历史、跟卖监控等 这些都在 roadmap 里, 你最需要哪个功能,直接在评论区说,会直接影响我们的排期优先级 文档方面 :目前中文版更完整,英文版还在逐步补全,国际化这块我们确实欠债了 相关地址 Amazon Data MCP Amazon Scraper API 完整开发文档 控制台(申请 API Key ) 有在做跨境 AI Agent 、数据管道或者相关工具的朋友,欢迎交流。我会一直在评论区,有任何问题都可以直接问,能答的我都答。

LinuxDo 最新话题 · 2026-06-08 22:46:53+08:00 · tech

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社区和佬友监督: 是 以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出 github.com GitHub - ApliNi/IpacPanel: 一个轻量好用且专业的终端程序管理面板 一个轻量好用且专业的终端程序管理面板 历时 4 个月开发的最新力作, 终端程序管理面板. 对于单台主机管理大量终端程序, 苦于找不到一个合适好用的面板, 于是开发了这个软件. 它与 MCSManager 类似, 但在使用体验和性能上做了大量改进. 已在自己的生产服务器上测试了两个月的时间, 运行稳定, 达到预期. 原生开发, 无前后端框架, 轻量稳定, 操作流畅, 没有圆角. 支持不停机更新, 内置 vscode 同款文本编辑器和中文等宽字体. 目前正在 windows 和 linux 平台积极维护. 欢迎提出建议和需求 (。・̀ᴗ-)✧ 3 个帖子 - 2 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-06 19:59:03+08:00 · tech

刚刚看了佬友发的BUG触发方法 就立马去试了一下 真的把我震惊到了 只要在登录窗口那里输入任意的[email protected] 居然就直接绕过登录 也就是只要检测到@wishtoapp.edu.kg这个邮箱后缀 直接放行 这还不算草台 后面应该是要团队的管理员同意才能进去吧 但是 我没看错的话 居然是自己同意自己 额 不知道这BUG是怎么泄露出来的 乱猜一下 应该是这个@wishtoapp.edu.kg团队里的内鬼吧 不过看这管理员的前缀 猜测一下应该是Openai搞ctf用来训练安全模型的内部团队 … 24 个帖子 - 19 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-05 18:58:23+08:00 · tech

买了很多服务器,如果用改配置文件的方法一个一个改,那我要累死了,在很长一段时间内我都使用的是强密码的方式,不过看到大家都在用密钥,我也想升级一下。 什么,你问我为什么用的是root账户,因为我懒得配sudo,打sudo,就这样吧。 其实配置完仅允许密钥登陆,你的服务器就安全了。 改SSH端口和配置Fail2ban纯属是可以让世界清静些的操作,不过也不麻烦,就随手配了吧~ 1.用密码连上服务器 2.创建一个密钥(或者导入一个密钥) 如果是导入密钥直接按 New key 然后把公钥私钥贴进去就好了。 3.把密钥发送到服务器 选择刚刚创建的密钥 Export to host 然后选择服务器、把密钥绑定到服务器上 现在就可以通过密钥(或者是密码)来访问服务器了。 回来看一下,Termius给服务器加上了key的登陆方式 这时候,你可以通过 密钥 、 密码 、 密钥+密码 的方式登陆服务器 不过如果密钥对/密码错、密钥对/密码错还是不行的hhh。 4.安装1Panel 1Panel官方网站: https://1panel.cn 1Panel项目文档: https://1panel.cn/docs 安装命令: bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)" 一路下一步就行 装完后记得把网址、账户、密码存好,我的习惯是给每台机器建个笔记来存这些东西。 5.修改SSH连接端口和root登陆方式 改成仅密钥登陆 6.配置Fail2ban 安装Fail2ban 把监听SSH端口改成刚才改的SSH端口就好了w 参考文献/其他佬友的优秀文章/更进阶的操作: 【小白搞机】从零开始的服务器管理及自建节点教程 - 教程 - IDC Flare 拿到新的小鸡(VPS)后,你应该先做什么?(入门安全篇) - 资源荟萃 - LINUX DO 从零开始的VPS科普(2):连接你的服务器 - 开发调优 - LINUX DO VPS基本安全措施 - 开发调优 - LINUX DO VPS基本安全措施 - 开发调优 - LINUX DO 我的前文: 服务器入门教程:一.服务器篇+代理搭建简述、代理相关文章汇总 - 文档共建 - LINUX DO 1 个帖子 - 1 位参与者 阅读完整话题

IT之家 · 2026-06-04 23:32:50+08:00 · tech

IT之家 6 月 4 日消息,据 Wccftech 今日报道,铭瑄在 2026 台北国际电脑展上展示了其基于英特尔 Panther Lake 和 Wildcat Lake 处理器的“Mobile on Desktop”(MoDT)主板,成为首家将这两款移动平台 SoC 引入标准桌面规格主板的生产商。 其中,SK-PTLNAS 从命名来看似乎是一款专为 NAS 设计的 ATX 主板,通体采用白色 PCB,搭载 Panther Lake 系列处理器,最高可选酷睿 Ultra X9 388H。 不过,铭瑄在现场展示的样机使用的是酷睿 Ultra 7 356H,拥有 8 核 8 线程,集成 4 个 X e 3 架构 iGPU 核心。CPU 功耗维持在 65W,采用单 8pin 接口供电。这款主板采用 6+4 相供电设计,提供两条 DDR5 SO-DIMM 插槽,最大支持 128GB 内存。 扩展方面,这款主板配有一条 PCIe 5.0 x16 全长插槽和五个 M.2 SSD 插槽(2 个 Gen5 x2、2 个 Gen4 x1、1 个 Gen4 x2),顶部另有一个 M.2 插槽用于 Wi-Fi 模块,并设有三个 Mini SAS 接口用于额外存储扩展。 后置 I/O 通过祥硕控制器提供双 USB-C 40Gbps 接口、双 USB 3.2 Gen2 和双 USB 2.0 接口;板载则包含两个 USB 3.2 Gen1、三个 USB 2.0 和一个 USB 3.2 Gen2 Type-C 接口。网络部分配备 10GbE 和 2.5GbE 双网口。主板上还集成了 DEBUG 指示灯和清除 CMOS 的板载按钮。 另一款新品为基于 Wildcat Lake 的 MoDT 主板,采用 mATX 板型,定位入门级。 该主板仅设一条 DDR5 SO-DIMM 插槽,最大支持 32GB 内存。CPU 采用 4+2 相供电,通过 12V DC 接口供电,最高支持 28W TDP。 存储方面,该主板提供了一个 Gen4 x4 M.2 插槽和一个 SATA III 接口;I/O 方面提供双 USB 3.2 Gen1 和双 USB 2.0 接口,板载一个 USB 3.2 Gen2 Type-C 和三个 USB 2.0 接口。 除 MoDT 主板外,铭瑄还展出了两款基于英特尔 Arc Pro B65 的专业卡新品,分别为搭载涡轮风扇散热的 Turbo 版本和完全被动散热的静音版本。 两款显卡均为单槽设计,配备单个 16 针(12V-2x6)供电接口,TDP 为 200W。目前上述产品的售价和具体上市时间均未公布。 相关阅读: 《 铭瑄推出 MS-MoDT 230H/205H D4 WIFI 主板,搭载酷睿 7 230H / 酷睿 5 205H 处理器 》