话接上回,由于IPFS的无权限导致服务器云盘爆满,无奈之下,只能将整个IPFS删除!我倒是想将自己的数据保留下来,可是因为IPFS的机制,它的数据都是细小的block组成,根本无法分辩哪个是哪个文件。

删除IPFS后,喵星没有图片啰!

https://peakd.com/@lemooljiang/posts
在打开Peakd时却又发现图片竟然还在呢!这不由得喜出望外!赶紧查下图片地址,都是这种格式 https://images.hive.blog/1536x0/https://ipfs.ilark.io/ipfs/QmR98gViK8kXp3ELYJHMd7oK1SVpMawifsrfiPiCgRTA9v 不错,这是将图片都做了缓存。这也是有些是临时图床的解决方案。既然知道了方法,那就着手解决吧。
解决方案
解决方案比较直接:替代链接即可。 也就是在原有图片链接的基础上加上缓存的地址就可以了,以下是代码:
const replaceImage = (text) => {
// https://ipfs.ilark.io/ipfs/QmbN9kGo63D1EeVwfcvnAakZiYK5m3rKXf2HY3yTegefK9
let reg = /https:\/\/ipfs\.ilark\.io/g //从md中提取链接
if (reg != null){
let newText = text.replace(reg, 'https://images.hive.blog/0x0/https://ipfs.ilark.io')
return newText
} else {
return text
}
}
整完后发现图片是可以显示了,可是那是在梯子开着的前提下!有没有可以直接打开的方案呢?
Nginx反向代理图片服务器
图片服务器https://images.hive.blog在国内不能直接打开,那用Nginx反向代理可以解决么?能想到这一步,问题差不多就解决啰!
先创建好网站,装好https证书。再更改配置,设置好反向代理,搞定!
location / {
proxy_pass https://images.hive.blog/;
proxy_ssl_server_name on;
proxy_set_header Host images.hive.blog;
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
Nginx的主要配置如上,更改好图片服务器就好啰。

https://miao.ilark.io/lemooljiang
喵星人的图片功能恢得正常啰!