从上周末开始到今天,终于把七牛云到期的测试域名所属空间的博客照片迁移到腾讯云。腾讯云有一定量免费空间供用户使用(发博文时免费额度:50 GB 标准存储容量,10 GB CDN 回源流量,100 万次读请求,100 万次写请求。费用实例),希望腾讯云短期内不要出对没钱用户的制裁条款。当然,出了我们也不用慌,再迁移便是,正所谓不折腾不舒服斯基。果然免费的都是要付出其它代价的~
备份七牛云图片到本地
方案一:如果此时你处在工作日时间,可以参考此链接教你如何在七牛云域名过期后备份内容完成转移,让七牛云技术人员临时恢复你的测试域名,直接从该测试域名所属的空间下载资源备份到本地,具体操作可参考此帖的1、2、6步骤即可。具体命令,时间久了可能官方会更新,若此帖的1、2、6步骤涉及的命令可能失效,此时命令可参考qshell。
此为方案一,可以完美完整备份云端资源到本地,也是本人极力推荐的方案。
方案二:
您需要先新建一个同区域存储空间,会分配一个新的测试域名到新空间。
1)qshell account 此处填写ak 此处填写sk 此处填写自定义的用户名 (ak sk可以在控制台右上角的个人面板,密钥管理里找到)
- qshell listbucket 原bucket名 -o list.txt (list出全部文件)
3)cat list.txt | awk '{print $1}' >list_final.txt ( 用awk获取list结果的第一列)
注:3)本人没有执行通过。解决办法是把2)中的 list.txt 文件内容拷贝到 Excel 里,在 Excel 里批量删除列,只保留第一列。然后把第一列内容拷贝出来,粘贴到新文件中,将该新文件命名为 list_final.txt 即可。这样做就达到了3)的效果。
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 = '---' + '
' + 'title: ' + filename2 + '
' + 'date: 201-- 00:00:00' + '
' + 'categories: ' + '
' + 'tags: ' + '
' + '---' + '
'
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)