也谈自建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://h4ck.org.cn/
* 个性:https://oba.by/
* 本文标题: 《也谈自建Gravatar镜像》
* 本文链接:https://h4ck.org.cn/2022/11/%e4%b9%9f%e8%b0%88%e8%87%aa%e5%bb%bagravatar/
* 短链接:https://oba.by/?p=10659
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


分享文章:

猜你喜欢:

6 comments

    1.  
      Google Chrome 104 Google Chrome 104 Windows 10 Windows 10 cn山东省临沂市 联通

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

      1.   
        Safari 16 Safari 16 iPhone iOS 16.1 iPhone iOS 16.1 cn浙江省杭州市 移动

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

        1.  
          Google Chrome 104 Google Chrome 104 Windows 10 Windows 10 cn山东省临沂市 联通

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

  1.   
    Safari 16 Safari 16 iPhone iOS 16.1 iPhone iOS 16.1 cn浙江省杭州市 移动

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

发表回复

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