• 博客中新浪图床 迁移至 阿里云的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 是卡死了,发现博客园网站打不开。尴尬

  • 相关阅读:
    static 续--
    [非原创]java 中static作用解析
    public/private/protected作用域
    三种排序方法(冒泡、选择、插入)
    SQLMAP自动注入(四)
    SQLMAP自动注入(三)—Injection,Detection,Techniques
    SQLMAP自动注入(二)-request,优化
    SQLMAP自动注入(一)
    SQL盲注
    SQL注入——猜测字段名称
  • 原文地址:https://www.cnblogs.com/xiyin/p/10872829.html
Copyright © 2020-2023  润新知