Gravatar 头像缓存
Gravatar 是 wp 为博客提供的全球头像系统.
然而大局域网常常加载缓慢或无法连接.
于是将之缓存, 以确保头像可用.
import fs from 'fs'
import https from 'https'
import crypto from 'crypto'
function getGravatar(email, size) {
let md5 = crypto.createHash('md5')
let str = email ? md5.update(email.toLowerCase()).digest('hex') : 'default'
let 本地路径 = './' + str + '.jpg'
let 网络路径 = `https://secure.gravatar.com/avatar/${str}.jpg?s=${size}&d=mm&r=g`
if (!fs.existsSync(本地路径)) {
https.get(网络路径, res => res.pipe(fs.createWriteStream(本地路径)))
}
return '/api/avatar/' + str + '.jpg'
}
console.log(getGravatar('huan0016@gmail.com', 128))
简易实现, 并未处理头像更新问题, 一般还需要定期替换或特定条件触发检查更新
另外也可以通过镜像站来调取头像(通常有CDN加速)
虽然镜像站的解决方案很好, 却可能被其跟踪统计浏览记录, 因此并不是最优选择
镜像服务器
名称 | 地址 |
---|---|
V2EX | https://cdn.v2ex.com/gravatar/ |
极客族 | https://sdn.geekzu.org/avatar/ |
loli | https://gravatar.loli.net/avatar/ |
inwao | https://gravatar.inwao.com/avatar/ |
--- satori ---
Last