V0W's Blog

迁移七牛云图床到github

字数统计: 701阅读时长: 3 min
2018/11/06 Share

前言

七牛对域名回收了,导致我的之前所有博客的图片都需要转移,这是一件麻烦事,导致我现在对七牛非常失望。

但是,其实七牛这么做也是有自己的苦衷的,详细原因参考V2EX-[七牛云] 测试域名 测底要废除了? 测试域名使用规范及回收机制 大佬们的讨论。

算是可以理解吧,但是还是要解决问题啊。。。

开始吧。

整体思路

  1. 下载所有图片
  2. 在github上创建图床
  3. 绑定二级域名(非必须)
  4. 将下载的图片重新上传到github图床。
  5. 利用脚本,替换所有文章的外链

第一步 下载所有图片

使用七牛提供的 qshell 可以很快下载所有图片。

我是 windows 环境,即下载 qshell_windows_x64.exe 。

下载完成后,现在目录下创建一个配置文件,后面会用到。(我命名为qdownload,conf)

1
2
3
4
5
6
7
8
9
10
11
12
{
"dest_dir" : "C:\\Picture\\qiniu",
"bucket" : "ctfwp",
"prefix" : "",
"suffixes" : "",
"cdn_domain" : "xxxxx.bkt.clouddn.com",
"referer" : "/blog",
"log_file" : "download.log",
"log_level" : "info",
"log_rotate" : 1,
"log_stdout" : false
}

只需要修改三个参数:

参数 内容
“dest_dir” 下载文件保存的目录
“bucket” 七牛储存空间名称
“cdn_domain” 该储存空间的 cnd 域名
“referer” 存储空间的相对地址

注:在 windows 环境中目录输入需要双斜杠。

接下来在 cmd 中输入指令即可。

1
2
qshell_windows_x64 account <AK> <SK> #登陆账户
qshell_windows_x64 qdownload qdownload.conf #执行下载,qdownload,conf为刚刚写的配置文件名

注:<AK> <SK>是自己的密钥 AccessKey 与 SecretKey,登陆七牛后,在这里查看

第二步 上传图片到其他空间

这里我将图片上传都github的图床。

参考git上传的操作:如何往github上上传文件

第三步 将之前的博客图片外链都换成新的外链

我写了个脚本,将旧的七牛云的外链换成了新的github图床的外链

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# coding: utf-8
# author: V0W
# env: python3

import os
import re

# list files
def listFiles(dirPath):
fileList=[]
for root,dirs,files in os.walk(dirPath):
for fileObj in files:
fileList.append(os.path.join(root,fileObj))
return fileList

def main():
fileDir = "./"
oldstr = r'http://xxxxxxx.bkt.clouddn.com/' ##这里是旧的七牛云外链
newstr = r'https://xxxxxxxxxxxxxx/' ### 这个是新的图床的外链
FileList = listFiles(fileDir)
# print(FileList)
for fname in FileList:
f = open(fname, 'r+', encoding='UTF-8')
all_the_lines=f.readlines()
# print(all_the_lines)
f.seek(0)
f.truncate()
for line in all_the_lines:
f.write(line.replace(oldstr,newstr))
f.close()

if __name__=='__main__':
main()

用法的话,把脚本放在博客markdown文件目录下,执行py文件即可。

参考链接

https://sspai.com/post/44495

http://k162.space/2018/10/30/qiuniu-imgs-to-github.html

https://jingyan.baidu.com/album/e52e3615192b2440c70c514b.html

CATALOG
  1. 1. 前言
  2. 2. 整体思路
  3. 3. 第一步 下载所有图片
  4. 4. 第二步 上传图片到其他空间
  5. 5. 第三步 将之前的博客图片外链都换成新的外链
  6. 6. 参考链接