加速Gravatar头像缓存的方法详解

头像用的最多的还是使用Gravatar头像,但是Gravatar头像服务器在国外,速度上肯定有影响,如果很快的缓存Gravatar头像呢?

网上大部分是本地缓存,然后通过本地化Gravatar头像缓存来加快速度。

但是这次我换一种方法,无需加重自己服务器的负担来加快,因为这里有免费的七牛,使用七牛的同步镜像功能,同步Gravatar头像网站,然后把所有Gravatar头像地址改成七牛的地址就可以了。

 

使用方法:

1、去七牛申请帐号。官网地址:http://www.qiniu.com 

推广注册地址:https://portal.qiniu.com/signup?code=3lkin4af40swi (希望大家通过这个注册,让我多点空间,谢谢)

2、创建一个空间,七牛会分配一个2级域名,打开这个空间的“空间设置” --- “镜像存储”,填入Gravatar头像的官网地址(http://www.gravatar.com)

3、测试效果七牛缓存后头像效果

因为我使用的是emlog,Gravatar头像创建的连接一般是以下这种连接。

测试连接:http://www.gravatar.com/avatar/6016bea8a1116741c739ff17f8062776?s=40&d=mm&r=g

通过七牛绑定的域名(这边我已经绑定自己的域名了):http://avatar.myxzy.com/avatar/6016bea8a1116741c739ff17f8062776?s=40&d=mm&r=g

发现可以正常访问,但是头像的参数没了,直接跳转到 http://avatar.myxzy.com/avatar/6016bea8a1116741c739ff17f8062776

4、通过七牛的图片处理功能,自定义图片大小。

七牛后台“数据处理” --- “样式分隔符”,设置为“/”,然后“新建图片样式”。

样式名称自己设置,如“thum32”;“缩略方式”选择指定宽高缩放,设置宽高为32;“输出格式”和原图一致;“图片质量”可以自己选择,如100%。

设置好之后,测试http://avatar.myxzy.com/avatar/6016bea8a1116741c739ff17f8062776/thum32

这个已经可以输出指定大小的Gravatar头像,可以设置多个图片样式,但是最好不要大于宽高80px。

 

还有点问题:

1、不能输出其他参数的Gravatar头像;

2、用户更改了Gravatar头像不会自动更新七牛缓存中的Gravatar头像,需要自己手动更新。(可以一段时间后清空下这个同步空间的内容即可)

演示效果:你可以看看本站的Gravatar头像效果。

emlog的话,直接修改includelibfunction.base.php中

 代码如下 复制代码

function getGravatar($email, $s = 40, $d = 'mm', $g = 'g') {
 $hash = md5($email);
 $avatar = "http://www.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
 return $avatar;
}

修改为
function getGravatar($email, $s = 40, $d = 'mm', $g = 'g') {
 $hash = md5($email);
 //$avatar = "http://www.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
 $avatar = "http://avatar.myxzy.com/avatar/$hash/thum$s";
 return $avatar;
}

时间: 2024-09-23 11:31:27

加速Gravatar头像缓存的方法详解的相关文章

Android VideoCache视频缓存的方法详解

Android VideoCache视频缓存的方法详解 项目中遇到视频播放,需要加载网络url,不可能每次都进行网络加载,当然了,就需要用到我们的缓存机制 AndroidVideoCache AndroidVideoCache是一个视频/音频缓存库,利用本地代理实现了边下边播,使用起来非常简单. HttpProxyCacheServer是主要类,是一个代理服务器,可以配置缓存文件的数量.缓存文件的大小.缓存文件的目录和缓存文件命名算法,文件缓存均基于LRU算法,利用Builder来配置: //配

Android中XUtils3框架使用方法详解(一)_Android

xUtils简介 xUtils 包含了很多实用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 今天给大家带来XUtils3的基本介绍,本文章的案例都是基于XUtils3的API语法进行的演示.相信大家对这个框架也都了解过, 下面简单介绍下XUtils3的一些基本知识. XUtils3一共有4大功能:注解模块,网络

Android图片缓存之Bitmap详解(一)_Android

前言: 最近准备研究一下图片缓存框架,基于这个想法觉得还是先了解有关图片缓存的基础知识,今天重点学习一下Bitmap.BitmapFactory这两个类.  Bitmap:Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件. 重要函数  •public void recycle() // 回收位图占用的内存空间,把位图标记为Dead  •public final boolean isRecycled()

YUM解决RPM包安装依赖关系及yum工具介绍本地源配置方法详解_Linux

1.背景概述 在实际生产环境下,对于在linux系统上安装rpm包,主要面临两个实际的问题 1)安装rpm包过程中,不断涌现的依赖关系问题,导致需要按照提示或者查询资料,手工安装更多的包 2)由于内外网的隔离,无法连接外网的yum源 鉴于上述因此,本文将详细介绍,yum工具以及配置本地yum源的方法 2.yum工具简介 •yum工具作为rpm包的软件管理器,可以进行rpm包的安装.升级以及删除等日常管理工作,而且对于rpm包之间的依赖关系可以自动分析,大大简化了rpm包的维护成本. •yum工具

Android中XUtils3框架使用方法详解(一)

xUtils简介 xUtils 包含了很多实用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 今天给大家带来XUtils3的基本介绍,本文章的案例都是基于XUtils3的API语法进行的演示.相信大家对这个框架也都了解过, 下面简单介绍下XUtils3的一些基本知识. XUtils3一共有4大功能:注解模块,网络

iOS UITableView代理方法详解

IOS UITableView的代理方法详解 一.补充 在上一篇博客中,http://my.oschina.net/u/2340880/blog/404605,我将IOS中tableView(表视图)的一些常用方法总结了一下,这篇将tableView的代理方法作了总结,对上一篇博客进行了补充. 二.UITableViewDataSourc(数据源代理) 1.必须实现的回调方法 返回每个分区的行数 - (NSInteger)tableView:(UITableView *)tableView nu

ASP包含文件方法详解

详解 ASP包含文件方法详解 SSI 指令为用户提供在 Web 服务器处理之前将一个文件的内容插入到另一个文件的方法.ASP 只使用这一机制的 #include 指令.要在 .asp 文件中插入一个文件,使用下面的语法: <!--#include virtual | file ="filename"--> virtual 和 file 关键字指示用来包含该文件的路径的类型,filename 是您想包含的文件的路径和名称. 被包含文件不要求专门的文件扩展名:但是,为被包含文件

如何远程调用Access数据库方法详解

  如何远程调用Access数据库方法详解: 使用了TCP/IP,ADO及XML(需要安装Microsoft XML 4.0.).分服务器和客户端两部分,服务器可以多用户同时连接.远程连接Access数据库有很多方法,我以前已经比较详细的回答过(见下面所列的5种方法),我现在这个例子属于其中的第3种方法(不需要使用RDS或Web服务器). 远程连接access数据库的几个方法: 1.建立VPN(Virtual Private Network),这样你的电脑和主机的连接就与局域网无异,然后把服务器

ASP.NET动态设置页面标题的方法详解

这篇文章介绍了ASP.NET动态设置页面标题的方法详解,有需要的朋友可以参考一下     ASP.NET为我们提供了一个控件类:System.Web.UI.HtmlControls.HtmlGenericControl.它可以实现 HTML的元素的一个实例,比如在.cs代码中控制aspx中的<td>元素(注意,它不是<ASP:TableCell>). 我们知道,页面标题是被包含在<TITLE></TITLE>中的,而<TITLE>也是一个HTML