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

news2024/12/29 9:40:39

 

目录 

前言

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());
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习Android嵌入式需要做哪些准备?

首先嵌入式系统可以分为四个层次&#xff1a;硬件层、驱动层、系统层和应用层&#xff0c;其中每一个层次都会有一类专业的学生适合深入学习。硬件层就适合电子、通信、机电等学生&#xff0c;驱动层因为比较难&#xff0c;按我的理解都是需要从硬件层和应用层过渡。而应用层就…

LNMP原理及安装

LNMP: 目前成熟的企业网站的应用模式之一&#xff0c;指的是一套协同工作的系统和相关软件能够提供静态页面服务&#xff0c;也可以提供动态web服务 LNMP的组成: L &#xff1a;表示linux系统&#xff0c;操作系统N &#xff1a;表示nginx网站服务&#xff0c;前端&#xf…

项目运行时出现:“listen EADDRINUSE: address already in use :::3002“

listen EADDRINUSE: address already in use :::3002 解决&#xff1a;查找对应 pid&#xff1a; netstat -ano PS C:\Users\admin\Desktop\chatgpt-web\service> netstat -ano 控制台输入&#xff1a;taskkill -f /pid 25420&#xff08;抓图是别的进程&#xff09; 结…

08. 容器间通信

目录 1、前言 2、容器间通信 2.1、通过IP地址进行通信 2.2、通过DNS Server进行通信 2.3、通过Joined方式通信 3、容器跨节点通信 3.1、通过容器在宿主机上的端口映射实现 3.2、通过Docker Overlay网络实现 4、小结 1、前言 上一篇《07.Docker网络通信模式》我们初步认…

LeetCode--HOT100题(17)

目录 题目描述&#xff1a;41. 缺失的第一个正数&#xff08;困难&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;41. 缺失的第一个正数&#xff08;困难&#xff09; 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时…

harbor搭建

回到目录 Harbor 是 VMware 公司开源的企业级 Docker Registry 项目&#xff0c;其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务 通俗的讲&#xff0c;harbor是一个私人镜像存储服务器 1 下载安装 进入官网&#xff0c;下载一个离线安装包,harbor官网下载 这…

命令模式 Command Pattern 《游戏设计模式》学习笔记

对于一般的按键输入&#xff0c;我们通常这么做&#xff0c;直接if按了什么键&#xff0c;就执行相应的操作 在这里我们是将用户的输入和程序行为硬编码在一起&#xff0c;这是我们很自然就想到的最快的做法。 但是如果这是一个大型游戏&#xff0c;往往我们需要实现一个按键…

tinkerCAD案例:33. 在 Tinkercad 中使用标尺工具

在 Tinkercad 中使用标尺工具 Using the Ruler Tool in Tinkercad 在 Tinkercad 中使用标尺工具 Introduction: Using the Ruler Tool in Tinkercad 简介&#xff1a;在 Tinkercad 中使用标尺工具 For those that may not know Tinkercad is a web based 3D modeling tool.…

vue 浏览器右侧可拖拽小组件

目录 0. 使用场景 1. 动图示例 2. 实现方式 2.1 创建drag.js 2.2 使用v-drag 3. 结尾 0. 使用场景 很多网页在浏览器右侧有"导航"或者“智能助手”的悬浮小气泡框&#xff0c;比如我们的csdn☞ 作为页面友好型的引导标注&#xff0c;某些场景下这些小气泡可以…

MacBook触控板窗口管理 Swish for Mac

Swish for Mac是一款用于通过手势来控制mac应用窗口的软件&#xff0c;你可以通过这款软件在触控板上进行手势控制&#xff0c;你可以在使用前预设好不同手势的功能&#xff0c;然后就能直接通过这些手势让窗口按照你想要的方式进行变动了 Swish 支持 Haptick Feedback 震动反…

途乐证券|互联金融概念爆发,安硕信息“20cm”涨停,高伟达等大涨

互联金融概念4日盘中强势拉升&#xff0c;截至发稿&#xff0c;安硕信息“20cm”涨停&#xff0c;高伟达、卓创资讯、慧博云通涨超12%&#xff0c;恒银科技、极点软件亦涨停&#xff0c;指南针涨超9%&#xff0c;金证股份涨逾7%。 高伟达昨日在投资者互动平台表明&#xff0c;公…

Kubernetes客户端认证—— 基于ServiceAccount的JWTToken认证

1、概述 在 Kubernetes 官方手册中给出了 “用户” 的概念&#xff0c;Kubernetes 集群中存在的用户包括 “普通用户” 与 “ServiceAccount”&#xff0c; 但是 Kubernetes 没有普通用户的管理方式&#xff0c;通常只是将使用集群根证书签署的有效证书的用户都被视为合法用户。…

实现组件大小随窗口大小变化

暂时只学会用代码的方式&#xff0c;如果后续了解到在可视化界面的属性栏中可以设置会进而更新分享 组件界面和一些属性 一些布局属性 详细代码实现 详细代码 //从这里开始复制下面的代码&#xff01;&#xff01;&#xff01;//第一步&#xff0c;定义控件自适应窗口类A…

恒盛策略:成交10天增10倍,“牛市旗手”太火了!TMT赛道股也重新活跃

A股商场周五上午高开&#xff0c;盘中大幅走强&#xff0c;但其后一度收窄涨幅&#xff0c;挨近上午收盘又从头有所回升。 作为“牛市旗手”&#xff0c;券商板块进一步上涨&#xff0c;成交额也进一步放量&#xff0c;上午半个交易日成交额现已打破900亿元&#xff0c;照此趋势…

由红黑树到map/set

文章目录 一.map/set 的封装思路1.封装思路2.红黑树节点调整3.map 和 set 的定义4.仿函数 KeyOfValue5.map/set 的插入 二.map/set 迭代器实现1.迭代器的定义2.解引用运算符重载3.成员访问运算符重载4.(不)等于运算符重载5.begin() 与 end()6. 运算符重载7.-- 运算符重载8.[ ]下…

公文,需要明确分工和流程,以确保公文的准时完成和质量保障

对于需要多人协作的公文&#xff0c;需要明确分工和流程&#xff0c;以确保公文的准时完成和质量保障。 具体来说&#xff0c;可以采取以下几个方面的工作&#xff1a; 1.明确分工&#xff1a;在多人协作的公文中&#xff0c;需要明确各自的职责和任务&#xff0c;合理分配工作…

Codeforces Round 881 (Div. 3)F1题解

文章目录 [Omsk Metro (simple version)](https://codeforces.com/contest/1843/problem/F1)问题分析1.分析如何知道根节点到某个结点的区间内是否存在一个子段和为k2.方法1使用树形DP来动态维护每个节点到根节点的最大子段和和最小子段和代码 Omsk Metro (simple version) 问题…

专业商城财务一体化-线上商城+进销存管理软件,批发零售全行业免费更新

订货流程繁琐&#xff1f;订单处理效率低&#xff1f;小程序商城与进销存系统不打通&#xff1f;数据需要手动输入同步&#xff1f;财务与的结算对账需要大量手工处理&#xff1f;零售批发从业者&#xff0c;如何你也有以上烦恼&#xff0c;可以看看进销存小程序订货商城&#…

软件设计师(六)结构化开发方法

结构化方法由结构化分析、结构化设计、结构化程序设计构成&#xff0c;它是一种面向数据流的开发方法。 分类说明结构化分析&#xff08;SA&#xff09;根据分解与抽象的原则&#xff0c;按照系统中数据处理的流程&#xff0c;用数据流图来建立系统的功能模型&#xff0c;从而…

Java错误小全

文章目录 NullPointer异常&#xff1a; 错误描述&#xff1a;当试图访问一个空引用对象的属性或调用空引用对象的方法时&#xff0c;会抛出NullPointer异常。 复现示例&#xff1a; String str null; System.out.println(str.length());解决方案&#xff1a;在使用对象之前&am…