学习笔记|简单分享一下自建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());
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/60615.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Cocos Creator的 Cannot read property ‘applyForce‘ of undefined报错

序&#xff1a; 1、博主是看了这个教程操作的时候出的bug>游戏开发 | 17节课学会如何用Cocos Creator制作3D跑酷游戏 | P9 代码控制对象移动_哔哩哔哩_bilibili 2、其实问题不是出在代码上&#xff0c;但是发现物体就是不平移 3、node全栈的资料》node全栈框架 正文…

django使用mysql数据库

Django开 发操作数据库比使用pymysql操作更简单&#xff0c;内部提供了ORM框架。 下面是pymysql 和orm操作数据库的示意图&#xff0c;pymysql就是mysql的驱动&#xff0c;代码直接操作pymysql ,需要自己写增删改查的语句 django 就是也可以使用pymysql、mysqlclient作为驱动&a…

python#django数据库一对一/一对多/多对多

一对一OneToOneField 用户和用户信息 搭建 # 一对一 class TestUser(models.Model): usernamemodels.CharField(max_length32) password models.CharField(max_length32) class TestInfo(models.Model): mick_namemodels.CharField(max_length32) usermode…

CMake:检测python解释器和python库

CMake:检测python解释器和python库 导言检测python解释器CMakeLists.txt输出附录 检测python库项目结构CMakeLists.txt相关源码附录 导言 python是一种非常流行的语言。许多项目用python编写的工具&#xff0c;从而将主程序和库打包在一起&#xff0c;或者在配置或构建过程中使…

【暑期每日一练】 day15

目录 选择题&#xff08;1&#xff09;解析&#xff1a; &#xff08;2&#xff09;解析&#xff1a; &#xff08;3&#xff09;解析&#xff1a; &#xff08;4&#xff09;解析&#xff1a; &#xff08;5&#xff09;解析&#xff1a; 编程题题一描述输入描述输出描述 示例…

Android 9-- 源码角度: Home键的监听和拦截

在做应用层APP需求的过程中&#xff0c;HOME键的监听&#xff0c;Back键的监听&#xff0c;这都是很常见的问题&#xff0c;那你有试过&#xff0c;去拦截HOME键的事件吗&#xff0c;有去了解过如何处理吗&#xff0c;流程如何 首先大家应该先了解一种情况&#xff0c;就是Andr…

Red Hat 安装JDK与IntelliJ IDEA

目录 前言 Red Hat 安装 JDK 1、更新软件包列表 2、安装OpenJDK 3、验证安装 Red Hat 安装IntelliJ IDEA 1、下载 IntelliJ IDEA 2、解压缩 IntelliJ IDEA 安装包 3、移动 IntelliJ IDEA 到安装目录 4、启动 IntelliJ IDEA 前言 YUM是基于Red Hat的Linux发行版的一个…

flask-session、数据库连接池

flask 自带session---》以cookie的形式放到了浏览器中---》加密 真正的session&#xff0c;是在服务端存储 -django中存在djangosession表中 -flask中&#xff0c;使用第三方&#xff0c;保存在---》redis中---》flask-session 使用步骤 pip install flask-session …

Stable Diffusion 使用教程

环境说明&#xff1a; stable diffusion version: v1.5.1python: 3.10.6torch: 2.0.1cu118xformers: N/Agradio: 3.32.0 1. 下载 webui 下载地址&#xff1a; GitHub stable-diffusion-webui 下载 根据自己的情况去下载&#xff1a; 最好是 N 卡&#xff1a;&#xff08;我的…

vscode无法连接远程服务器的可能原因:远程服务器磁盘爆了

vscode输入密码后一直等待&#xff0c;无法进入远程服务器终端&#xff1a; 同时Remote-SSH输出包含以下内容 在日志中的以下几个部分&#xff1a; [17:15:05.529] > wget download failed 这表明VS Code尝试在远程服务器上下载VS Code服务器时失败了。> Cannot write…

小孩学python课程需要多久,儿童学python哪个机构好

本篇文章给大家谈谈小孩学python课程需要多久&#xff0c;以及儿童学python语言能做什么&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 学习儿童python编程越来越受欢迎&#xff0c;原因有很多&#xff0c;对于孩子来说&#xff0c;Python是一种很好的编程语…

Linux|ubuntu下运行python

参考&#xff1a;ubuntu系统下切换python版本的方法 文章目录 python版本问题查看ubuntu下的所有python版本通过apt-get install可以安装不同版本python查看python版本号更新update-alternatives替代列表查看update-alternatives下的python版本切换python版本删除python版本 p…

汽车智能化再掀新热潮!「中央计算架构」进入规模量产周期

中央计算区域控制的新一代整车电子架构&#xff0c;已经成为车企继电动化、智能化&#xff08;功能上车&#xff09;之后&#xff0c;新一轮竞争的焦点。 如果说智能化的1.0阶段&#xff0c;是智能驾驶智能座舱的争夺战&#xff1b;那么&#xff0c;即将进入的2.0阶段&#xff…

微服务——操作索引库+文档操作+RestClient操作索引库和文档(java程序)

索引库操作 mapping属性 mapping是对文档的约束&#xff0c;常见约束属性包括: 创建索引库 #创建索引库 PUT /heima {"mappings": {"properties": {"info":{"type": "text","analyzer": "ik_smart"},…

机器学习笔记之优化算法(十)梯度下降法铺垫:总体介绍

机器学习笔记之优化算法——梯度下降法铺垫&#xff1a;总体介绍 引言回顾&#xff1a;线搜索方法线搜索方法的方向 P k \mathcal P_k Pk​线搜索方法的步长 α k \alpha_k αk​ 梯度下降方法整体介绍 引言 从本节开始&#xff0c;将介绍梯度下降法 ( Gradient Descent,GD ) …

Appium+Python3环境搭建,其实超简单!

appium可以说是做app最火的一个自动化框架&#xff0c;它的主要优势是支持android和ios&#xff0c;另外脚本语言也是支持java和Python。略懂Python&#xff0c;所以接下来的教程是appiumpython&#xff0c;自己搭建环境的时候&#xff0c;按照某些博客安装遇到各种奇葩问题&am…

Python爬虫——爬虫时如何知道是否代理ip伪装成功?

前言 在进行爬虫时&#xff0c;我们可能需要使用代理IP来伪装自己的身份&#xff0c;以避免被网站封禁。如何判断代理IP是否伪装成功呢&#xff1f;本篇文章将围绕这个问题展开讲解&#xff0c;同时提供Python代码示例。 1. 确认代理IP地址 首先&#xff0c;我们需要确认代理…

【运维工程师学习八】代理及安装配置Nginx反向代理

【运维工程师学习八】代理 正向代理一、使用正向代理的主要作用有&#xff1a;二、反向代理三、使用反向代理的主要作用有&#xff1a;四、透明代理五、各种代理的主要区别六、Nginx的安装七、了解nginx的文件位置八、了解nginx程序的命令行参数九、开启nginx反向代理十、解读n…

设计模式、Java8新特性实战 - List<T> 抽象统计组件

一、背景 在日常写代码的过程中&#xff0c;针对List集合&#xff0c;统计里面的某个属性&#xff0c;是经常的事情&#xff0c;针对List的某个属性的统计&#xff0c;我们目前大部分时候的代码都是这样写&#xff0c;每统计一个变量&#xff0c;就要定义一个值&#xff0c;且…

Qt中ffmpeg API存储和显示摄像头视频

Qt中ffmpeg API存储和显示摄像头视频的功能需要之前写的视频ffmpegAPI的视频播放的流程。 代码源码位置&#xff1a;https://download.csdn.net/download/qq_43812868/88157743?spm1001.2014.3001.5503 一、存储和显示摄像头的视频的流程 这是读取打开视频文件的流程&#x…