批量替换七牛云测试域名

mark

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

mark

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

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

Step1

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

Step2

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

mark

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

mark

Step3

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

mark

mark

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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 文件中的域名都已被替换。

mark

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

文章目录
  1. 1. Step1
  2. 2. Step2
  3. 3. Step3
|