从上周末开始到今天,终于把七牛云到期的测试域名所属空间的博客照片迁移到腾讯云。腾讯云有必定量免费空间供用户使用(发博文时免费额度: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(' 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)