请不要滥用 Composer 镜像资源

刚过去的周末为 Composer 中文镜像 / Packagist 中国全量镜像 操碎了心,周六早上又拍云后台查看余额时,发现欠费了:

财大气粗的阿里云,为什么要这样做?希望你能给个说法

又拍云是我们「Packagist 中国全量镜像」的赞助商,当然又拍云不是慈善机构,此次赞助是一次商业行为。我需要拿社区右边栏的一年的广告位,作价 1.5万 RMB 作为置换:

阿里云,请停止这种做法~

代金券发放:

阿里云,请停止这种做法~

下面是最近几个月 的花费情况,六月份的数据还没出来,不过肯定又是新高了:

阿里云,请停止这种做法~

以上罗列这些数据,是希望让大家知道镜像虽然是大家随意使用,但是并不是免费的,是有成本的。

阿里云,请停止这种做法~

一个阿里云镜像(阿里云提供的功能,非阿里云官方),一个晚上脱了 1个多 T 的流量。我想问:他们不知道,流量是需要钱的吗?

镜像流量大部分是正常增长,国内使用 Composer 的项目越来越多,代表大家对新技术越佳适应,这是好事。但是这些流量里,存在许多像「aliyun-oss-mirror」这种我们称之为「恶意流量」的,他们因为「墙」的原因,不从官方下载扩展包,而选择走捷径从国内下载。

在这里,我想对发起恶意请求的同学说一声:请自行想办法下载数据,我们资源有限,无法供你们如此挥霍。

一个正常的开发者,一次 composer install 一般不会超过 20MB,并且本地机器会做缓存,如上面这种恶意请求,一晚上消耗掉我们一个 TB 的数据,1T = 1024GB = 1048576MB,相当于 52428.8 位正常用户的下载,想想就心疼。

常见问题

关于镜像,朋友们都很关心,我把一些问题整理了放下面方便大家阅读。

问:接下来的 Laravel China 镜像何去何从?
答: 我和 [@扣丁禅师](https://learnku.com/users/12063) 接下来会做一些限流措施,减少恶意流量的消耗。我会尽力将我能控制的资源拿出来置换又拍云的代金券,但是如果接济不过来的话,可能会采取一些更加激进的限流措施。

问:要不搞个众筹或者捐赠?
答: 很多朋友跟我提起这个,首先要感谢大家的热心,但是这种事情最好有一个合适的商业模式在里面,才能保持长久维护。做这个事情,钱不应该让个人来出,应该让公司来出,并且公司也能从中得到好处(例如品牌得以推广等),创造双赢的模式。例如 packagist.org 官方的流量更大,那是全世界开发者的流量,但是他们公司就是靠这块服务赚钱的,请见 https://packagist.com/pricing 。在国内,「大厂维护镜像」这种模式也是存在的,阿里、腾讯、华为各大云平台,每年都有以亿为单位的市场推广费用,他们维护的镜像,大家在推广的时候,都会说「华为云 Composer 镜像」、「阿里云 Composer 镜像」等,这是非常高效的广告定点投放,并且相比硬广告,这种广告更加深入人心。中国有句老话,「吃人口软,拿人手短」,开发者后面后相关需求,也会偏向于使用你的服务。

问:如果 Laravel China 镜像资源不够用了怎么办?
答: 我们周末已经开始联系一些大厂,来说服他们提供可用性较高的镜像,我们提供 全量镜像同步的源码 和安装指导,目前已经有几个知名的云平台表示有兴趣,另外在 [@TimJuly](https://learnku.com/users/5161) 的帮助下,也联系了一些有做镜像的高校。我们的目的是让中国拥有更多的 全量加速镜像 ,这样大家有更多的选项,当一个不稳定了,可以使用另一个。也分流了压力,Composer 全量镜像,在接下来几年里,随着新技术的普及,将承受中国几十万甚至上百万的开发者流量,分流压力很有必要。如果你有决心要来构建一个全量镜像,或者你发现了优质的全量镜像,烦请联系我,我将会帮你在各个加速文档里更新你的链接,让更多人受惠于你的劳动。

结语

两年前,中国只有一个 Composer 全量镜像 pkg.phpcomposer.com ,两年后的现在,我们有了更多的选择,现在托 [@扣丁禅师](https://learnku.com/users/12063) 的福,我们有了 全量镜像同步的源码 ,希望以后有更多的全量镜像供我们选择。


Practice makes perfect.

附言 1  ·  2个月前

乌龙了啊,昨天那波流量,是有同学在做测试,已经打电话过来确认了。aliyun-oss-mirror 不是阿里云,是阿里云平台上的一个镜像功能,此功能还支持自动切换 IP ,这也解释了为何后台有 500 个阿里云 IP 的情况。实在抱歉,误会了阿里云老哥。

附言 2  ·  2个月前
附言 3  ·  2个月前

这次乌龙,已经给阿里云写了 致歉信 。另外,措辞比较强烈的评论,为了不造成更多伤害,我就冒昧屏蔽了哈。

本帖由系统于 2个月前 自动加精
讨论数量: 33

可以使用这个镜像为社区分流:https://php.cnpkg.org/

2个月前 评论
hainuo 2个月前
m01i0ng

无意中发现上海交大提供了 Packagist 镜像 https://mirrors.sjtug.sjtu.edu.cn/packagis...,可以作为分流

2个月前 评论
Summer (楼主) 2个月前
m01i0ng (作者) 2个月前
hainuo 2个月前

支持一波

2个月前 评论
Egfly

这波操作太恶心了

2个月前 评论

耍流氓

2个月前 评论

对了,顺便问一下,我用composer-mirror自己搭建的时候出现一些问题。
上传composer.phar文件到又拍云报错

{"msg":"need bucket name","code":40000003,"id":"79b4a04008ff050cc28530bb5112fff9"}

配置文件是配置了bucket参数

'cloudDisk' => (object)[
        'adapter' => 'ZenCodex\\Support\\Flysystem\\Adapter\\UpyunAdapter',
        'config' => [
            'operator' => 'tegic',
            'password' => 'password',
            'bucket' => 'bucket ',
            'uploadType' => 'BLOCK',
        ],
        'bucketMap' => [
            'json' => 'mirror-json',
            'zip' => 'mirror-dist',
        ]
    ]

麻烦 @扣丁禅师 解答一下呢。谢谢。

2个月前 评论
扣丁禅师 2个月前
mysql (作者) 2个月前
扣丁禅师 2个月前
mysql (作者) 2个月前
# php getcomposer.php
已解析版本路径: /download/1.8.6/composer.phar
https://getcomposer.org/download/1.8.6/composer.phar => 准备上传到CDN
Client error: `PUT http://v0.api.upyun.com//composer.phar` resulted in a `400 Bad Request` response:
{"msg":"need bucket name","code":40000003,"id":"79b4a04008ff050cc28530bb5112fff9"}
2个月前 评论
梦之马

真恶心,一般人就用几十m,他直接按 G作为单位计算了

2个月前 评论

真是不容易,Summer挺住!

2个月前 评论

有点奇怪, 他们这么大的厂 为什么不从官方拉? 别告诉我他们不会科学上网, 还是说嫌官方的慢?

2个月前 评论
Summer (楼主) 2个月前
cnguu

声援一波

2个月前 评论

支持一下

2个月前 评论
耐小心

@Summer 在OSS中有个回源功能 如果OSSbucket中不存在这个文件 就会回源获取 没记错的话 就是这个UA

file

** - 39.107.223.152  - - - - [24/Jun/2019:12:28:32 +0800] "GET /test HTTP/1.1" 404 166 "-" "aliyun-oss-mirror"  --------"-" "-" "-" "0.000"
2个月前 评论

可以使用这个镜像为社区分流:https://php.cnpkg.org/

2个月前 评论
hainuo 2个月前
ShiKi

这波操作有点骚啊~

2个月前 评论
likunyan

相关人员知道这个帖子后,会说:“我以为又拍云是不限量让社区用的,所以才直接下载,不好意思啊”。

2个月前 评论
Summer (楼主) 2个月前
老财

已经转发,不过有几处错别字,龙哥修改下,更掷地有声

2个月前 评论
巴啦啦

这波操作的负责人,做法有点毒

2个月前 评论
QiFengLe_

旧的问题解决了,新的问题来了。特别好奇那位同学在做什么测试,会用到这么多的流量,方便分享一下吗。 :blush:

2个月前 评论

那位做测试的同学到底用来测试什么

2个月前 评论

Summer , 真不好意思哈,我也跟着出名了。。

2个月前 评论
QiFengLe_

博客:对用阿里云 OSS 把 LC 作为回源表示很抱歉 想知道那个哥们干嘛的戳一下小链接就进去了。

2个月前 评论

峰回路转 :joy:

2个月前 评论

剧情神反转。。。。

2个月前 评论

官方不应该也发个道歉申明?

2个月前 评论

心疼一下,下一步应该考虑如何对一些恶意操作做一些限制

2个月前 评论
huanbird

?????

2个月前 评论
m01i0ng

无意中发现上海交大提供了 Packagist 镜像 https://mirrors.sjtug.sjtu.edu.cn/packagis...,可以作为分流

2个月前 评论
Summer (楼主) 2个月前
m01i0ng (作者) 2个月前
hainuo 2个月前
GhostCoder

过分了啊 咱们本来就白嫖镜像了 给人添乱卡油就过分了

2个月前 评论
勺颠颠

要是不行了,到时候写个代码还要翻墙,甚至还要购买相应的翻墙服务【服务器,软件】才能写项目,这多可怕啊
码农不容易啊,感谢laravel china平台!!!

2个月前 评论

所以,为什么不直接使用 https://pkg.phpcomposer.com/ 呢?对比咱们的 https://packagist.laravel-china.org/ 优缺点在哪里?有人能说说嘛。

2个月前 评论
Hachiko 2个月前
LeoYao 2个月前

为什么腾讯云上面用不了laravel社区镜像了?说是要username

2个月前 评论

楼主 现在使用 是不是要输入用户名和密码验证?

2个月前 评论

难道不是用的固定带宽?按量收费?

2个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!