從上週末開始到今天,終於把七牛雲到期的測試域名所屬空間的博客照片遷移到騰訊雲。騰訊雲有必定量免費空間供用戶使用(發博文時免費額度:50 GB 標準存儲容量,10 GB CDN 回源流量,100 萬次讀請求,100 萬次寫請求。費用實例),但願騰訊雲短時間內不要出對沒錢用戶的制裁條款。固然,出了咱們也不用慌,再遷移即是,正所謂不折騰不舒服斯基。果真免費的都是要付出其它代價的~html
方案一:若是此時你處在工做日時間,能夠參考此連接教你如何在七牛雲域名過時後備分內容完成轉移,讓七牛雲技術人員臨時恢復你的測試域名,直接從該測試域名所屬的空間下載資源備份到本地,具體操做可參考此帖的一、二、6步驟便可。具體命令,時間久了可能官方會更新,若此帖的一、二、6步驟涉及的命令可能失效,此時命令可參考qshell。python
此爲方案一,能夠完美完整備份雲端資源到本地,也是本人極力推薦的方案。git
方案二:github
您須要先新建一個同區域存儲空間,會分配一個新的測試域名到新空間。正則表達式
1)qshell account 此處填寫ak 此處填寫sk 此處填寫自定義的用戶名 (ak sk能夠在控制檯右上角的我的面板,密鑰管理裏找到)shell
2) qshell listbucket 原bucket名 -o list.txt (list出所有文件)markdown
3)cat list.txt | awk '{print $1}' >list_final.txt ( 用awk獲取list結果的第一列)hexo
注:3)本人沒有執行經過。解決辦法是把2)中的 list.txt 文件內容拷貝到 Excel 裏,在 Excel 裏批量刪除列,只保留第一列。而後把第一列內容拷貝出來,粘貼到新文件中,將該新文件命名爲 list_final.txt 便可。這樣作就達到了3)的效果。dom
4)qshell batchcopy 原bucket名 新bucket名 -i list_final.txt (複製到新bucket的文件和原bucket文件名一致)函數
5)qshell qdownload newfilelist.txt (newfilelist.txt爲下載的配置文檔)
qshell安裝包及文檔請參考此帖
不太明白的能夠參考 此帖
該方案本人不太推薦,由於我一開始用的是這個辦法(由於是週末,技術人員不方便臨時恢復個人測試域名),發現有個別資源沒有下載到本地。因此,週一我用方案一完美備份了資源。
可參考此帖
方案一:可參考此帖
方案二:一開始同窗推薦使用正則表達式,無奈本身菜雞。然後,本人蔘考網上一篇批量修改文件內容的Python代碼,魔改後。成功實現了批量修改本地Markdown文章圖片連接。下面把Python代碼貼出來供你們參考,輕拍~(Python版本2.7)
#coding=utf-8#可加入中文註釋 #!/usr/bin/python # -*- coding: UTF-8 -*- #函數功能:將指定文件夾下全部文件和子文件夾下的文件遍歷,並修改文件內容 import os fpath ="/Users/fsf/PycharmProjects/Python2_tencentcloud/test"#這裏是你的第一級文件夾的路徑 def filechanger(path): filenames = os.listdir(path)#將path路徑下的全部文件名存入列表filenames for filename in filenames:#循環遍歷每一個文件 domain = os.path.abspath(path)#獲取規範的路徑 filename = os.path.join(domain,filename)#帶路徑的文件名 if os.path.isdir(filename): # 若是是文件夾進入遞歸 filechanger(filename) continue fread = open(filename,'r') fwrite = open("%s.backup"%filename,'w') for line in fread.readlines(): src_str = line if src_str.find('![') != -1: start = src_str.index('![') + 2 end = src_str.index('](') sub = src_str[start:end] start1 = end + 2 end1 = src_str.index(')') sub1 = src_str[start1:end1] sub2 = src_str[(end1 - 4):end1] s1 = 'https://xxxxxxxxx-3334.cos.ap-hongkong.myqcloud.com/' s11 = 'https://xxxxxxxxx-3334.cos.ap-hongkong.myqcloud.com/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7' # sub3 = src_str[:start1] + '../images/' + sub + sub2 + src_str[end1] + src_str[(end1+1):] s2 = sub + sub2 + src_str[end1] + src_str[(end1+1):] if src_str[start:(start + 12)] == '屏幕快照': s22 = s11 + src_str[(start + 12):end] + sub2 + src_str[end1] + src_str[(end1+1):] sub3 = src_str[:start1] + s22.replace(' ', '%20') else: sub3 = src_str[:start1] + s1 + s2.replace(' ','%20') fwrite.write(sub3) # 修改後寫入新文件 print(sub3) else: fwrite.write(src_str) print(src_str) continue fread.close() fwrite.close() os.remove(filename)#若是想更改數據後想保留原文件以及修改文件名可屏蔽這一句和下一句 os.rename("%s.backup" % filename, filename)# filechanger(fpath)
Debug過程當中參考的帖子:
IOError: No such file or directory: but the files are there…
原本打算趁着這個當兒用回Hexo,可是這樣相應的markdown語法也要微調,很不方便,並且源代碼託管也是一個問題。仍是繼續用博客園,這樣只專一於寫好文章就行了~
下列是一些爲了遷移到 Hexo,對文章進行批量修改的 Python 代碼(Python版本2.7)。固然,也是基於批量修改文件內容的Python代碼魔改的:
批量加入hexo格式的文章頭部:
--- title: date: categories: tags: ---
python代碼:
#coding=utf-8#可加入中文註釋 #函數功能:將指定文件夾下全部文件和子文件夾下的文件遍歷,並修改文件內容 import os os.chdir('/Users/xxx/PycharmProjects/Python2_02/test2') fpath ="/Users/xxx/PycharmProjects/Python2_02/test2"#這裏是你的第一級文件夾的路徑 def filechanger(path): filenames = os.listdir(path)#將path路徑下的全部文件名存入列表filenames for filename in filenames:#循環遍歷每一個文件 #得到文件名(不包含擴展名) filename1 = filename i = filename1.rfind('.') filename2 = filename1[:i] domain = os.path.abspath(path)#獲取規範的路徑 filename = os.path.join(domain,filename)#帶路徑的文件名 if os.path.isdir(filename): # 若是是文件夾進入遞歸 filechanger(filename) continue fread = open(filename,'r') fwrite = open("%s.backup"%filename,'w') sub = '---' + '\n' + 'title: ' + filename2 + '\n' + 'date: 201-- 00:00:00' + '\n' + 'categories: ' + '\n' + 'tags: ' + '\n' + '---' + '\n\n' fwrite.write(sub) for line in fread.readlines(): fwrite.write(line) fread.close() fwrite.close() os.remove(filename)#若是想更改數據後想保留原文件以及修改文件名可屏蔽這一句和下一句 os.rename("%s.backup" % filename, filename)# filechanger(fpath)