xChar
·6 months ago

为什么我imgur的图片加载不出来?

简单来说就是黑IP了,因为imgur在大陆是无法访问的,我们需要使用科学的方法来访问,这时候你节点的IP可能就在imgur的黑名单里面,导致没办法加载,具体表现为访问i.imgur.com(图片直链)返回429,访问imgur.com会返回

{
    "data": {
        "error": "Imgur is temporarily over capacity. Please try again later."
    },
    "success": false,
    "status": 403
}

那怎么办呢?

其实最简单的方法就是换一个节点

但是,我发现,换了一圈我现有的(包括self-hosted)都不能正常访问!!!

有网友说,很多数据中心的IP进了imgur的黑名单了,恰巧这时我也不想再找了,于是就想着自己折腾折腾,想一个方法。

灵感 1

很多网站在大陆访问比较慢,或者是被屏蔽了,这时候有一些人会做一些公益的镜像站,比如Hugging Face的镜像站HF-Mirror

于是我就想,有没有一个imgur的镜像站呢?

答:没找到。

但是,有一些提供图片镜像缓存服务的网站,他们能够缓存图床的直链,并转发给用户。具体的可以参考这篇

这里以https://img.noobzone.ru/getimg.php?url=为例,把要访问的imgur图片链接直接加在网址后面(作为参数传入)即可访问,且不需要科学的方法。

例如:https://img.noobzone.ru/getimg.php?url=https://i.imgur.com/TbWS0cZ.png

灵感 2

我想到了Header Editor (google.com),这个浏览器插件可以重定向所有满足某种条件的请求。

于是写一个正则匹配i.imgur.com为域名的URL,重定向至https://img.noobzone.ru/getimg.php?url=即可。

Clip_2024-05-31_18-41-59

更新:在热心网友的提醒下,发现该图片缓存网站似乎开启了防盗链,我们再创建一个规则,将请求头里面的referer去掉就可以正常获取图片了。

Clip_2024-05-31_18-42-19

安装插件后,可以参考我写的填,或者直接从

https://gist.githubusercontent.com/shiquda/fde8daca5c45a829d063283ba41bcca4/raw/a7b80eeb251c5175b6e4e3d2fb6f497e9df7c0f9/header-editor-imgur-config

导入。

导入后开启规则应该就能生效了。

局限

这里只支持在浏览器中访问,如果需要在其他软件中访问,可能需要一些其他分流软件,这里不再探讨。感兴趣的读者可以自行探索实现。

参考

  1. 图片防盗链最终解决方案,超级简单实用的方法 | 爱淘数字资源馆 (1itao.com)
  2. imgur办掉了所有的乌龟壳ip访问图片-美国VPS综合讨论-全球主机交流论坛 - Powered by Discuz! (hostloc.com)

感谢

“游客”网友的补充解决方案。

Loading comments...