Gitee图床无法访问新增防盗链,最新详细解决方案
Posted Baret-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gitee图床无法访问新增防盗链,最新详细解决方案相关的知识,希望对你有一定的参考价值。
目录
一、寻找Gitee图床挂掉的原因
昨天晚上准备整理一下以前写的笔记,就打开了曾经写的Typora文档,不看不知道,一看吓一跳,发现所有网络图片全部挂掉了,以为是Gitee官方的问题,于是就没管了,想着明天就好了。
然而到了今天下午,发现还是没有好,这不太对劲啊,于是直接复制图片的url到浏览器
发现直接存在错误,感觉问题不简单,于是就浏览器调试看看请求的过程
发现我请求的图片并没有返回,而是返回了一个Gitee的官方图标,我想着是不是存储在Gitee的图片都丢了,于是我上Gitee看,发现图片都在,点击也都能正常访问。
突然想起来曾经搭建过Hexo静态网站,该网站是通过Gitee Page来部署的,上面也有很多存储在Gitee上的图片,于是一看,惊讶的发现所有存储在Gitee的图片都能正常显示
单独打开也能正常访问,这就很奇怪了。于是我在Hexo网站上再次进行调试看看,发现图片请求的过程与上面不同,请求头中多了一个Referer
字段,值为https://bareth.gitee.io
,也就是我自己的gitee地址。
然后我百度了Referer
字段的作用,一看第一条作用顿时明白了:
应该是Gitee添加了防盗链机制,当我们通过直接访问存储在Gitee上的图片时,Http请求头没有Referer
字段,所以被Gitee服务器当作黑名单而拒绝响应。而前面我们通过Gitee Page部署的Hexo博客请求时,由于代码都托管在Gitee上,在加载所有图片的时候都附加了Referer字段
指向Gitee,相当于被Gitee服务器看作白名单因而可以访问。
这下就麻烦了,先前想着Gitee免费也够用,创建了两个仓库用来专门当图床,几年来所有的图片都存储在其中,现在看来需要迁移了…
解决方案就是:寻找新的图床,然后将原存储在Gitee上的图片下载上传到新的图床中,然后由于url前缀的变更,我们还需要更换图片的url前缀。
接下来就带大家将所有图片迁移到腾讯云的对象存储COS服务中。
二、迁移到腾讯云cos
1. 创建存储桶
打开腾讯云-对象存储 - 控制台 (tencent.com),创建一个新的存储桶
然后设置存储桶的相关参数
高级配置我们可以直接跳过
最后点击创建即可完成
2. 设置密钥
进入腾讯云-密钥管理 - 对象存储 - 控制台 (tencent.com),点击访问密钥
进行密钥的设置
这里作为个人的图床,选择继续使用即可
然后就可以看到APPID
、SecretId
、SecretKey
等密钥信息
3. 配置PicGO
- COS版本一定要选择v5
- SecretId、SecretKey、APPID就是我们前面设置密钥得到的相关信息
- 存储空间名就是我们创建的存储桶的名称,即
名称-APPID
- 存储区域就是我们第存储桶选择的区域
- 存储路径就是我们希望在存储桶中的文件存放路径
4. 验证配置是否成功
我们在Typora的设置中验证图片上传选项,可以看到成功
我们来到我们刚创建的存储桶中,可以看到新建了img文件夹,里面存放着我们刚上传的图片
5. 迁移Gitee图片
这里拿我的一个专门存放图片的Gitee仓库为例,其中img
文件夹中就存放着所有的图片,我们点击克隆/下载
下载zip压缩包,下载完成后解压
然后我们回到存储桶中,点击上传文件
然后选择文件,这里直接选择其中的解压zip中的img文件夹即可
然后点击上传,这样就会将其中的所有图片上传到该存储桶的img文件夹中,右侧的任务管理可以看到上传进度
6. 批量更改url前缀
上传完成后,我们需要在本地批量修改url的前缀为新的前缀,比如:
- 原来的:https://gitee.com/bareth/images2/raw/master/img/image-20211229215044554.png
- 新的:https://bareth-1305674339.cos.ap-hongkong.myqcloud.com/img/image-20211229215044554.png
我们需要将https://gitee.com/bareth/images2/raw/master/
修改为https://bareth-1305674339.cos.ap-hongkong.myqcloud.com/
我们可以通过JetBrains全家桶的IDE工具例如Goland打开任意一个md文档,按Ctrl+R
快捷键,然后将所有的前缀点击Replace All即可进行更换
然后我们所有的图片即可成功显示
这样我们就实现了图片从Gitee迁移到腾讯云COS
三、最后想说
Gitee这波操作有点太突然了,估计很多人都受到了影响,于是第一时间写了这篇文章来告诉大家如何解决。看来图床的存储还是放在专业的对象存储上,大家加油迁移吧!
以上是关于Gitee图床无法访问新增防盗链,最新详细解决方案的主要内容,如果未能解决你的问题,请参考以下文章