gitee图床迁移
·
Gitee图床无法访问新增防盗链
gitee图床问题

之前一直使用gitee作为图床使用,但是2022年初gitee增加了仓库的防盗链,最近仓库无法作为md文档的外链使用,之前在里面存了许多图片,现在都用不了了,一下子挂掉突然的。
我们通过直接访问存储在Gitee上的图片时,Http请求头没有Referer字段,所以被Gitee服务器当作黑名单而拒绝响应。而前面我们通过Gitee Page部署的Hexo博客请求时,由于代码都托管在Gitee上,在加载所有图片的时候都附加了Referer字段指向Gitee,相当于被Gitee服务器看作白名单因而可以访问。
解决方案
购买oss服务,使用阿里云的oss作为图床。阿里云的价格还比较便宜一年9块,40G存储空间。但这是存储的费用,之后还有流量计费,但听说也比较便宜。
买了空间之后创建一个bucket,然后在阿里云控制台的accessKey管理中增加一个oss的key,作为图床上传的凭证。

配置picGO

将创建的AccessKey和Secret以及存储区域填入
迁移图片
首先将gitee仓库的图片批量下载再上传到oss服务器中,之后要做的就是将md文件的引用链接进行更改。

在md中,图片的插入格式是src,所以进本上ctrl+f然后replaceAll就可以。但是文件多了就不好手动替换了,用几行python解决问题。
def modify_md_content(top):
for root, dirs, files in os.walk(top, topdown=False):
for file_name in files:
file_name_split = file_name.split('.')
try:
if file_name_split[-1] == 'md':
# 找到md文件
md_file_path = os.path.join(root, '.'.join(file_name_split))
# 打开md文件然后进行替换
with open(md_file_path, 'r', encoding='utf8') as fr:
readlines = fr.readlines()
fr.close()
with open(md_file_path, 'w', encoding='utf8') as f:
for line in readlines:
line_new = re.sub('#oldsrc', '#newsrc', line)
f.writelines(line_new)
f.close()
print(f'{md_file_path} done...')
except FileNotFoundError as e:
print(e)
# time.sleep(0.5)
在用的时候设置top为根目录就可以把所有的md全扫一次,问题解决。
最后想说
这次有点突然,我也是在写md发现之前的图片加载不出来,才发现gitee不让这么做了。所以说白嫖的还是不稳定啊,还是得正经花钱买服务。
更多推荐


所有评论(0)