批量替换七牛云测试域名

856 阅读2分钟

前天收到了一封邮件,提示七牛的测试域名已经不能再使用了。

邮件内容:



记得好像一两个月前就在 V2EX 上看到有人发帖说七牛的测试域名将要被回收了,登录官网一看,还真有这么一回事的通告。刚开始写博客的图床图省事就直接用了七牛云的测试域名,看来现在非改不可了。

这里我选择继续使用七牛云的图床,毕竟免费嘛!

Step1

首先需要按照七牛官网的教程:如何配置域名的 CNAME将自己的域名解析到七牛云上。

Step2

然后再在七牛官网对象存储->内容管理下选择自己的域名并点击“保存默认域名”按钮,这样可以将原来的图片外链由测试域名都更新为自己的域名



点击“保存默认域名”后,随便选择一张图片点击小眼睛,可以看到外链地址的域名已经变成自己的域名了



Step3

接下来就是将博客的所有文章源文件(.md)中的 url 地址替换成自己的域名

手动去改这些文件中的 url 显然是不现实的,所以此处编写了一个简单的 Python 脚本实现批量读取文件并替换域名:

import os
import io
file_dir = 'D:/Hexo/source/_posts'
# 测试域名
old_str = 'ows0rn5p3.bkt.clouddn.com'
# 新域名
new_str = 'imgblog.kuranado.com'
def batch_replace(file):
    print('filename:%s' % file)
    content = ""
    with io.open(os.path.join(file_dir, file), "r", encoding="utf-8", errors='ignore') as f:
        for line in f:
            if old_str in line:
                line = line.replace(old_str, new_str)
            content += line
    with io.open(os.path.join(file_dir, file), "w", encoding="utf-8", errors='ignore') as f:
        f.write(content)
# 遍历目录下文件
for folder, subFolder, filenames in os.walk(file_dir):
    for filename in filenames:
        # 以 .md 结尾的文件
        if os.path.splitext(filename)[1] == '.md':
            # 执行域名替换
            batch_replace(filename)

执行脚本之后,所有的 .md 文件中的域名都已被替换。



然后,重新发布博客,到此大功告成!