最近写的项目用到了 Gravatar 服务,但是 Gravatar 几个服务器都在外国,考虑到项目的用户有相当规模是没有梯子的国内用户,我开始寻找 Gravatar CDN。

网上 Gravatar CDN 参差不齐,有大站建的 CDN,也有网友自建的 CDN,于是简单写了一个 Python 脚本用于测速。

测试内容是两项:图片命中,和图片不命中后跳转到 GitHub 上的图片。各测试十次,取时间平均值,如果出现一次超时等 error 即报错。

脚本和测试结果均写于 2021.4.29,部分信息可能已失效。

from timeit import timeit
import requests
import os


def tester(base_url: str, number: int = 10):
    # 成功获取
    url1 = base_url + 'fd8b773755459a02294bffc322796b5d?size=300&default=https%3A%2F%2Fraw.githubusercontent.com%2Fuestc-msc%2Fuestcmsc_webapp_backend%2Flyh543%2Fstatic%2Fruanweiwei.jpg'
    # 获取失败,跳转到 default
    url2 = base_url + "2333333?size=300&default=https%3A%2F%2Fraw.githubusercontent.com%2Fuestc-msc%2Fuestcmsc_webapp_backend%2Flyh543%2Fstatic%2Fruanweiwei.jpg"
    try:
        print('%.6f' % timeit(lambda: requests.get(url1), number=number), end=' ')
    except:
        print('error   ', end=' ')
    try:
        print('%.6f' % timeit(lambda: requests.get(url2), number=number))
    except:
        print('error   ')

if __name__ == '__main__':
    mirrors = [
        "https://gr.mirror.hardrain980.com/",
        "http://gravatar.azureedge.com/avatar/",
        "https://gravatar.w3tt.com/avatar/",
        "https://dn-qiniu-avatar.qbox.me/avatar/",
        "https://gravatar.zeruns.tech/avatar/",
        "https://cdn.v2ex.com/gravatar/",
        "https://gravatar.loli.net/avatar/",
        "https://sdn.geekzu.org/avatar/",
        
        "https://www.gravatar.com/avatar/",
        "https://cn.gravatar.com/avatar/",
        "https://en.gravatar.com/avatar/",
        "https://secure.gravatar.com/avatar/",
    ]
    for mirror in mirrors:
        print(f'%-40s' % mirror, end=' ')
        tester(mirror)

我的测试结果:

网站 命中 未命中,重定向 评价
https://sdn.geekzu.org/avatar/ 6.261718 6.096203 极客族自建,推荐
https://gravatar.w3tt.com/avatar/ 6.598301 7.006393 w3tt 自建,推荐
https://dn-qiniu-avatar.qbox.me/avatar/ 1.828716 不支持 七牛自建,延迟最低,推荐,但不支持参数
https://cdn.v2ex.com/gravatar/ error error v2ex 自建,可惜人家也在国外
https://gravatar.loli.net/avatar/ 10.047769 9.787379 免费个人图床,延迟较高
https://gravatar.zeruns.tech/avatar/ 9.166306 7.800450 网友自建
https://gr.mirror.hardrain980.com/ 7.885361 8.984500 网友自建
http://gravatar.azureedge.com/avatar/ 5.792183 5.848405 本人自建(说不定什么时候就跑路了)
https://www.gravatar.com/avatar/ error error 官方,没法用
https://cn.gravatar.com/avatar/ error error 即使 cn 也是在德国的官方
https://en.gravatar.com/avatar/ error error 官方,没法用
https://secure.gravatar.com/avatar/ error error 官方,没法用