批量替換七牛雲測試域名

前天收到了一封郵件,提示七牛的測試域名已經不能再使用了。bash

郵件內容:dom



記得好像一兩個月前就在 V2EX 上看到有人發帖說七牛的測試域名將要被回收了,登陸官網一看,還真有這麼一回事的通告。剛開始寫博客的圖牀圖省事就直接用了七牛雲的測試域名,看來如今非改不可了。post

這裏我選擇繼續使用七牛雲的圖牀,畢竟免費嘛!測試

Step1

首先須要按照七牛官網的教程:如何配置域名的 CNAME將本身的域名解析到七牛雲上。ui

Step2

而後再在七牛官網對象存儲->內容管理下選擇本身的域名並點擊「保存默認域名」按鈕,這樣能夠將原來的圖片外鏈由測試域名都更新爲本身的域名url



點擊「保存默認域名」後,隨便選擇一張圖片點擊小眼睛,能夠看到外鏈地址的域名已經變成本身的域名了spa



Step3

接下來就是將博客的全部文章源文件(.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 文件中的域名都已被替換。對象



而後,從新發布博客,到此大功告成!

相關文章
相關標籤/搜索