也谈自建Gravatar镜像

随便搜一下,网上搭建gravatar镜像的文章还是挺多的,基本都是基于cdn溯源来做的。当然,国内也有很多其他的镜像服务器,例如cravatar.cn loli.net等。常用额基本就是下面这几个:

V2EX cdn.v2ex.com/gravatar/
极客族 sdn.geekzu.org/avatar/
loli gravatar.loli.net/avata
inwao gravatar.inwao.com/avat

cravatar貌似系统也在不断地更新:

Cravatar 完美兼容所有 Gravatar 头像 API 接口,同时如果你未在 Cravatar 设置头像,则会先尝试调用 Gravatar 上的头像数据,其后是 QQ 头像,最后会返回我们为你准备的一组默认头像。

特别地:我们会对所有头像进行人工审核(也包括来自 Gravatar 和 QQ 的头像),所有包含暴恐、色情、政治等违反中国法律的内容都会被屏蔽,并返回默认头像。

虽然兼容所有的api,但是并没有分级功能。

本来想免费薅羊毛弄一台甲骨文的服务器做nginx代理转发用,但是没成功,提示没有可用资源了。于是就想着用oss来做代理,这个想法其实也是由来已久,不过一直没有实施。最近弄了个nai.dog的域名,于是就在这个域名下面建了个镜像代理(不完美,这个最后说)。

测试头像:https://gravatar.nai.dog/avatar/3a78942c4ddcda86242f20abdacee082?s=50&d=mm&r=g

1.创建一个bucket(区域选择香港),设置为公共读。设置回源选项:

回源地址选择一个gravatar的服务器地址即可。需要说明的是回源参数,如果选择携带请求字符串那么会缓存指定大小的图片。我所我把这个参数给去掉了,默认缓存80*80的图片。

2.设置生命周期,选择一段时间后自动删除:

目前设置的是2天后自动删除,所以在gravatar更新头像两天之后才能刷新头像。

3.设置域名https://gravatar.nai.dog/

4.设置ssh证书https://yundun.console.aliyun.com/?p=cas#/certExtend/free:

目前阿里云每年有20个免费证书的额度,直接申请审核(大约10分钟)通过之后即可在oss上自动部署:

现在就可以使用自建服务了:

https://gravatar.nai.dog/avatar/3a78942c4ddcda86242f20abdacee082?s=50&d=mm&r=g
https://gravatar.nai.dog/avatar/1fbf51cf49f5c369ad2cd13d76c15c42?s=32&d=mm&r=g
https://cravatar.cn/avatar/81b9805653d1169927583574d835691b?s=32&d=mm&r=g

已知问题:

1、标准的gravatar参数无效s=50&d=mm&r=g。oss是根据文件名缓存,所以不会带参数属性

2、返回的图片大小默认为80*80,所以需要页面设置图像大小。否则会出现问题。

替换wp默认gravatar服务器地址代码:

if ( ! function_exists( 'get_cravatar_url' ) ) {
    /**
     * 替换 Gravatar 头像为 Cravatar 头像
     */
    function get_cravatar_url( $url ) {
        $sources = array(
            'www.gravatar.com',
            '0.gravatar.com',
            '1.gravatar.com',
            '2.gravatar.com',
            'secure.gravatar.com',
            'cn.gravatar.com',
            'gravatar.com',
        );
        return str_replace( $sources, 'gravatar.nai.dog', $url );
    }
    add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
    add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
    add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}

实际效果:

服务器地址:

https://gravatar.nai.dog/

欢迎测试~~~

 

☆版权☆

* 网站名称:obaby@mars
* 网址:https://lang.ma/
* 个性:https://oba.by/
* 本文标题: 《也谈自建Gravatar镜像》
* 本文链接:https://www.lang.ma/2022/11/10659
* 短链接:https://oba.by/?p=10659
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

6 comments

    1. 公主 Queen 
      Google Chrome 104 Google Chrome 104 Windows 10 Windows 10 cn中国–山东–临沂 联通

      还好,本身图片不大。oss费用相对来说也比较低。不过就算是开放了用的人应该也不多吧。

      1.   Level 7
        Safari 16 Safari 16 iPhone iOS 16.1 iPhone iOS 16.1 cn中国–浙江–杭州 移动

        公开服务了就难说,也可能被刷。aws一个月100G,我也不敢搭这个代理

        1. 公主 Queen 
          Google Chrome 104 Google Chrome 104 Windows 10 Windows 10 cn中国–山东–临沂 联通

          嗯嗯,看看情况吧。哈哈。不行到时候就关服务了~~~ laugh

  1.   Level 7
    Safari 16 Safari 16 iPhone iOS 16.1 iPhone iOS 16.1 cn中国–浙江–杭州 移动

    我甲骨文也没成功。弄了aws,听说一年后重新建账号又可以用

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注