庆余年 2 终于开播了,作为一名剧粉,苦等了五年终于盼来了。开播即爆火,虽然首播的几集剧情有些拖沓,不过也不影响这是一部好剧。
然而,庆余年 2 的爆火,却把 npmmirror 镜像站给坑惨了。npmmirror 镜像站(原 CNPM)的核心开发者 fengmk2 在某社交平台发推说,有人利用了 npm 包的机制,将刚刚开播的《庆余年 2》盗版资源搬运到了 npmmirror,因此导致 npmmirror 使用了大量的阿里云 CDN 资源,这个月开发者要因此付出很多的 CDN 账单费用了。
有些人就要问了,为什么看个盗版视频,会影响到这个很多人没听过名字的网站呢?
那一切的源头就要从 npm 说起了,了不起这就给大家简单科普一下。
何为 npm
npm(Node Package Manager)是一个 JavaScript 编程语言的包管理器,npm 允许开发者安装、共享和管理具有依赖关系的 JavaScript 包,这些包可以是库、工具或框架。而 npm 提供了一个公共的包仓库(registry),开发者可以在这里发布自己的包,也可以搜索和下载其他人发布的包。
图中说的 Unpkg,则是一个快速的 CDN 服务,用于提供 npm 包的内容。它允许开发者通过 URL 访问 npm 仓库中的文件,而不需要下载整个包。其优势在于它提供了一个快速、可靠的方式来分发 npm 包,并且可以自动处理缓存和版本控制。这对于前端开发者来说是一个非常方便的工具。
而 npmmirror 是一个中国的 npm 镜像服务,它提供了 npm 官方仓库的镜像,以加速中国大陆地区开发者访问 npm 仓库的速度。由于网络原因,中国大陆的开发者在访问 npm 官方仓库时可能会遇到速度慢或连接不稳定的问题。npmmirror 通过在中国大陆设立服务器,缓存 npm 官方仓库的数据,从而提供更快的访问速度。
盗版视频如何影响到 npm
当然,npm 和 Unpkg 都是免费的。而盗版视频的团队却盯上了这个免费快速的分发机制,通过将视频文件分割成多个小体积的视频文件,并对格式进行伪装,上传到 npm。而他们搭建的盗版视频网站则以软件包的方式从 npm 中获取这一批小视频文件,进而实现盗版网站的在线播放。
因为 npmmirror 是 npm 的镜像服务,所以国内的盗版视频网站在播放视频时,自然是走了 npmmirror 提供的 CDN 服务,从而达到了免费快速加载视频的。
本来是一群热爱开源的开发者给大家提供便利的 npmmirror,却被灰产团队利用,遭到了巨大的损失。了不起也惊叹到还可以这样使用公共资源为自己谋取私利,灰产团队的小聪明用到了这种歪路上,实在是可恶。
后续的处理
npmmirror 第一时间关闭了 unpkg 的新增文件功能紧急止损,并于第二天新增了白名单的判断,尽量的减少对其他开发者使用的影响。
了不起说
讲道理,这件事真是有些让人气愤。
开源社区和公共基础设施的建立是为了促进技术的发展和知识的共享,它们是无数开发者辛勤工作和智慧的结晶。当这些宝贵的资源被滥用,不仅损害了版权所有者的合法权益,也破坏了社区的和谐与信任。
而对于那些坚守原则、维护正义的开发者和组织,正是因为有了你们,开源社区才能持续繁荣发展,成为推动技术进步的重要力量。