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),点击访问密钥进行密钥的设置
在这里插入图片描述
这里作为个人的图床,选择继续使用即可
在这里插入图片描述
然后就可以看到APPIDSecretIdSecretKey等密钥信息
在这里插入图片描述


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这波操作有点太突然了,估计很多人都受到了影响,于是第一时间写了这篇文章来告诉大家如何解决。看来图床的存储还是放在专业的对象存储上,大家加油迁移吧!

猜你喜欢

转载自blog.csdn.net/qq_45173404/article/details/123759688