博客中新浪图床 迁移至 阿里云的OSS
前言
因为之前有个新浪的图床,还挺好用,而且免费,自己博客的图片上传到其上面也挺方便的,但是,前几周吧,突然图片就不能访问了,之前本来是想通过添加 meta 头来解决的,但是发现没有效果。于是就自己搞了个 阿里云的OSS, 主要用作为 图床。前段时间因为数据分析写报告时,特地学了Shell,刚好Shell 就适合来处理这种数据量不是很大的数据,于是就花了点时间来迁移图床了。
前提准备
- 阿里云OSS 开通
- Shell 基础知识 curl awk cut
- 最好有博客园API Post Blog 这个接口,如果你数据多的话最好有, 要不然需要一个一个上传。
用 Shell 脚本爬取当前博客所有的 新浪图床的图片,并下载到本地
#!/bin/sh
rm -rf blog_url_list
get_img_url()
{
for url in `cat blog_url_list`;
do
if [ `curl -s $url | awk '/sinaimg.cn/ {print $0}' | wc -l` -gt 0 ]
then
folder_name=`curl -s $url | awk '/postTitle2|postTitle/ {print $0}' | cut -d "<" -f 2 | cut -d ">" -f 2 | sed 's/ //g'`
if [ ! $folder_name ];
then
folder_name=`curl -s $url | awk '/postTitle2|postTitle/ {print $0}' | sed 's/ //g' |cut -d "<" -f 3 | cut -d ">" -f 2`
fi
mkdir "$folder_name"
img_list=`curl -s $url | awk '/sinaimg/ {print $2}' | awk -F\" '/src/ {print $2}'`
for img in `echo $img_list`;
do
img_name=`echo $img | cut -d "/" -f 5`
curl -s $img -o $folder_name/$img_name
done
fi
done
}
default_page="https://www.cnblogs.com/xiyin/default.html?page="
get_all_blog_url()
{
for i in `seq 9`;
do
curl -s https://www.cnblogs.com/xiyin/default.html?page=$i | awk '/DayList_TitleUrl_0/ {print $4}'| cut -d "\"" -f 2 >> blog_url_list
done
}
get_all_blog_url
get_img_url
rm -rf blog_url_list
#while [ $beginNum -le $endNum ];
#do
# getImgUrl $beginNum `expr $beginNum + $lap` &
# beginNum=`expr $beginNum + $lap + 1`
# if [ $beginNum > $endNum ]
# then
# getImgUrl `expr $beginNum - $lap - 1` $endNum &
# fi
#done
后续步骤
上面只是第一步,把你目前的所有新浪的图床下载来,接下来你需要上传到 阿里云 OSS ,阿里云 OSS 上有挺多语言的SDK,选择自己语言的SDK进行处理,因为我的数据不是很多,于是就直接手动上传了。
当你上传到 阿里云 OSS 后,接下来就是 更换 URL 了,如果用 阿里云 OSS,你可以这样,每上传一张,然后你建立一张json文件,或者文本文件。用来映射源地址和现地址。
之后可以再写一个脚本,把你目前博客中的所有图片URL 更换,最后 调用博客园的API push 到博客园上。
因为没有 API 接口权限,硬是纯手动,我都要哭了。
有一个很蠢的事,我本来想用 并行的,就是从我最开始的博客Id 开始遍历,到我目前最新的博客,我发现。有400多万个博客数据需要处理,可笑的是我还真的写了这个代码,每个命令用 & 后台执行, 当我在命令行 敲出 sh command 时,只见电脑风扇疯狂涌动,只能关机让它冷静冷静,当时 cmd 是卡死了,发现博客园网站打不开。尴尬
博客中新浪图床 迁移至 阿里云的OSS的更多相关文章
- MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。
MWeb 1.3.7 版的新功能 增加发布到 Wordpress 等支持 Metaweblog API 的服务,目前经测试过的有: Wordpress 博客.新浪博客.cnblogs.oschina. ...
- Hexo 博客图片添加至图床---腾讯云COS图床使用。
个人博客:https://mmmmmm.me 源码:https://github.com/dataiyangu/dataiyangu.github.io 腾讯云官网 登录注册 创建存储桶 进入上面的存 ...
- 搭建属于自己的图床(基于阿里云OSS,成本9元+20分钟)
之前的笔记都存在有道云笔记上,慢慢转化为Markdown格式分享出来,这中间遇到了一个图片问题,找了好久,了解到图床,然后找了谷歌插件中微博图床插件,用了一段时间发现,每次都需要登录微博,然后我又是一 ...
- 在hexo静态博客中利用d3-cloud来展现标签云
效果: http://lucyhao.com/tags/ hexo自带的tag cloud的标签展现不太美观,想能够展现出“云”效果的标签.在网上找到了d3-cloud这个项目,github地址:ht ...
- 将个人博客从GitHub迁移至阿里云服务器过程总结
让我们先回顾下前两篇博客: 程序员如何从0到1搭建自己的技术博客 在个人博客中优雅的使用Gitalk评论插件 通过前两篇博客,我们了解了如何快速的从0到1搭建一个个人博客并使用了Gitalk评论插件, ...
- 在个人博客中优雅的使用Gitalk评论插件
在上一篇博客<程序员如何从0到1搭建自己的技术博客>中,我们了解了如何快速的从0到1搭建一个个人博客. 其实细心的你会发现,该博客用到了一个评论插件,这个插件就是Gitalk. 如果想要在 ...
- 博客中gitalk最新评论的获取 github api使用
博客中,对于网友的评论以及每篇文章的评论数还是很重要的.但是基于静态的页面想要存储动态的评论数据是比较难的,一般博客主题中都内置了评论插件,但是博客主题中对于最新评论的支持显示还是很少的,至少目前我是 ...
- 关于将sublime中的代码高亮导出到博客中
第一步:打开sublime编辑器,用快捷键ctrl+shift+p调出control panel,在出现的输入框中输入install,按回车键 第二步:然后输入插件名称sublimehighlight ...
- 在博客中显示图片_Mac版
主要是防止自己忘掉 为了解决一开始自己想在写入的博客中添加本地图片,直接链接的话在自己的电脑倒是可以显示图片,但是在别人的电脑上就没办法加载图片了,问各路大神也没人愿意解答,百度也没有想要的答案,只好 ...
随机推荐
- antV G2 为柱状图添加背景颜色
工作中需要在基础柱状图的基础上添加一个自定义高度的背景颜色, 基础柱状图: 目标柱状图: 由于chart绘图可以重叠,通过该特性,我们可以在画两次图重叠在一起,第一次绘图描述背景,第二次绘图描述数据, ...
- Java开发桌面程序学习(一)——JavaFx+Jfoenix初始以及搭建
Java开发桌面程序学习(一)--JavaFx+Jfoenix初始以及搭建 前言 想做一个Java的桌面程序,但是,使用原生的Swing感觉又十分麻烦,那个布局都是拿代码设置,看着十分的乱,偶然的情况 ...
- Docker是什么、为什么是一种趋势
Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响.那么我就不需要专门运送水果的船和专门运 ...
- Javase之集合体系(3)之Set及其子类知识
集合体系之Set及其子类知识 Set(接口) public interface Set<E>extends Collection<E> 特点:无序(存储顺序与取出顺序不一致 ...
- docker挡板程序实现启动多个实例进程
启动服务: docker-compose restart
- layui常用的验证
var LayVerifyExtend = { notnullNonnegativeInteger: function (value, item) { //value:表单的值.item:表单的DOM ...
- 程序员的自我修养系列(一):优雅的代码管理工具之GitHub
1.导言 代码管理是程序员经常遇到一个问题,很多童鞋将代码保存到本地硬盘,此种方法管理混乱,也存在代码丢失的风险,且版本无法控制,因此养成良好的代码管理习惯是程序员的必修课.在众多代码管理工具中笔者在 ...
- 程序员编程时常用的mac快捷方式
fn + F2/F3 = 调节音量 commend + shift +k = 显示或隐藏键盘 commend+shift +h = iPhone返回主页面 commend+ shift + hh = ...
- ABP进阶教程10 - PDF导出中文乱码
点这里进入ABP进阶教程目录 问题描述 功能按钮 - 导出PDF,中文信息导出为乱码. 解决方案 导出PDF是通过pdfmake.js实现的. 检查发现是pdfmake引用的vfs_fonts.js字 ...
- java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8E' for column 'name' at row 1
我的错误案例: ,这个后台插不进去,就姓名那栏的中文编码问题. 遇到这个错误,应该是创建表的时候没有设置好编码,这个错误不用多想,我也试过在更改表那里设置编码,但还是不行,还是有残留 直接drop t ...