学习笔记|简单分享一下自建Gravatar镜像

 

目录 

前言

Gravatar 使用

思路

操作

步骤一:注册或登录华为云

步骤二:创建委托账号

步骤三:创建OBS桶

步骤四:数据回源配置

步骤五:配置生命周期规则

步骤六:绑定自定义域名

步骤七:配置防盗链

 其他平台


前言

Gravatar是Globally Recognized Avatar的缩写,是gravatar推出的一项服务,意为“全球通用头像”。如果在Gravatar的服务器上放置了你自己的头像,那么在任何支持Gravatar的blog或者留言本上留言时,只要提供你与这个头像关联的email地址,就能够显示出你的Gravatar头像来。WordPress的头像默认使用的就是Gravatar服务,但是其地址在国内访问比较慢或者干脆无法访问,由此就出现了很多Gravatar镜像站。但这些镜像站由于使用的人太多,时不时的就会出现无法访问甚至跑路的情况。所以干脆就自己搭建一个镜像站。

Gravatar 使用


因为网络环境原因,Gravatar 官方提供的服务在国内访问时体验较差,时常存在无法访问的情况,所以推荐使用国内的镜像服务。

下面列出国内一些常用的 Gravatar 镜像源:

Gravatar 官方的 secure 源:https://secure.gravatar.com/avatar/
Gravatar 官方的 cn 源:https://cn.gravatar.com/avatar/
Gravatar 官方的 www 源:https://www.gravatar.com/avatar/
V2EX:https://cdn.v2ex.com/gravatar/
极客族:https://sdn.geekzu.org/avatar/
loli:https://gravatar.loli.net/avatar/

思路


利用华为云OBS(对象存储)的数据回源功能,将Gravatar源站的图片缓存到OBS当中,然后给OBS绑定自定义域名,在WordPress中将头像服务器的地址修改为自定义的域名就可以了。

操作

步骤一:注册或登录华为云

1.1 注册或者登录华为云平台,进入到控制台。

步骤二:创建委托账号

2.1 在控制台左侧服务列表中,搜索IAM,进入到“统一身份认证服务 IAM”。

2.2 点击“委托”-->“创建委托”。 

 2.3 按照下图所示,填写以下内容,然后点击“下一步”。

2.4 选择策略,按照下图所示选择,然后点击“下一步”。


2.5 在“设置最小授权范围”保持默认,然后点击“确定”。

2.6 在弹出的窗口中点击“知道了”。


2.7 点击“完成”完成委托账号的创建。

 

步骤三:创建OBS桶

3.1 回到控制台,在控制台左侧服务列表中,搜索OBS,进入到“对象存储服务 OBS”。

3.2 在对象存储服务控制台,点击“创建桶”。 

 3.3 按照下图填写相关信息,然后点击“立即创建”。

这里为什么不能选择中国大陆区域?
答:其实可以选择中国大陆的区域,但是Gravatar源站在境外,国内访问可能会由于防火墙等原因导致无法访问,所以这里选择非中国大陆地区比较稳妥。

3.4 在弹出的窗口中点击“确定”。

 3.5 完成OBS桶的创建。

步骤四:数据回源配置

4.1 点击桶名称,进入到OBS桶的配置。

4.2 点击“数据回源”然后再点击“创建”。

4.3 创建数据回源规则,按照图片填写相关内容,其他的保持为空或者默认,然后点击“确定”。

 

 

4.4 数据回源配置完成。

步骤五:配置生命周期规则


OBS中只要存在数据就不会回源,但是用户可能会不定期的更新头像,因此需要让缓存到OBS中的数据定期删除,通过OBS的生命周期规则即可实现。

5.1 点击“基础配置”-->“生命周期规则”,然后点击创建。

5.2 创建生命周期规则,按照下图填写。

对象过期删除天数填写为1天,代表每过一天就删除之前一天的数据,可以根据需求自行决定填写数字,然后点击“确定”。

 5.3 完成生命周期规则创建。

步骤六:绑定自定义域名

6.1 点击“域名管理”-->“配置自动逸域名”。

 6.2 输入自己的二级域名,然后点击“确定”。

6.3 复制CNAME名称,然后到域名解析商处完成域名解析,解析完成后点击“我已了解”。

步骤七:配置防盗链


通过防盗链可以禁止其他网站盗用链接,避免增加OBS使用成本,如果公开给其他人使用,可以选择不设置防盗链。

7.1 点击“访问权限控制”-->“防盗链”。
在白名单Referer,处填写自己网站的域名,可以防止其他人使用,也可以在黑名单Referer处填写,禁止特定某些网站访问。

 其他平台

阿里云的OSS(对象存储)也具有相同的功能,具体操作可以参考阿里云的产品文档。

其他云没有尝试过,可以自行查看相关的产品文档看看。

java实现代码

package com.jgravatar;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {
	public static String hex(byte[] array) {
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < array.length; ++i) {
			sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(
					1, 3));
		}
		return sb.toString();
	}

	public static String md5Hex(String message) {
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			return hex(md.digest(message.getBytes("CP1252")));
		} catch (NoSuchAlgorithmException e) {
		} catch (UnsupportedEncodingException e) {
		}
		return null;
	}

	public static void main(String[] args) {
		String email = "12";
		String hash = MD5Util.md5Hex(email);
		System.out.println(hash + " " + email.hashCode());
	}
}

猜你喜欢

转载自blog.csdn.net/qq_22903531/article/details/132097700