前天收到了一封郵件,提示七牛的測試域名已經不能再使用了。bash
郵件內容:dom
記得好像一兩個月前就在 V2EX 上看到有人發帖說七牛的測試域名將要被回收了,登陸官網一看,還真有這麼一回事的通告。剛開始寫博客的圖牀圖省事就直接用了七牛雲的測試域名,看來如今非改不可了。post
這裏我選擇繼續使用七牛雲的圖牀,畢竟免費嘛!測試
首先須要按照七牛官網的教程:如何配置域名的 CNAME將本身的域名解析到七牛雲上。ui
而後再在七牛官網對象存儲->內容管理下選擇本身的域名並點擊「保存默認域名」按鈕,這樣能夠將原來的圖片外鏈由測試域名都更新爲本身的域名url
點擊「保存默認域名」後,隨便選擇一張圖片點擊小眼睛,能夠看到外鏈地址的域名已經變成本身的域名了spa
接下來就是將博客的全部文章源文件(.md)中的 url 地址替換成本身的域名code
手動去改這些文件中的 url 顯然是不現實的,因此此處編寫了一個簡單的 Python 腳本實現批量讀取文件並替換域名:cdn
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 文件中的域名都已被替換。對象
而後,從新發布博客,到此大功告成!