博客中新浪圖牀 遷移至 阿里雲的OSS

前言

由於以前有個新浪的圖牀,還挺好用,並且免費,本身博客的圖片上傳到其上面也挺方便的,可是,前幾周吧,忽然圖片就不能訪問了,以前原本是想經過添加 meta 頭來解決的,可是發現沒有效果。因而就本身搞了個 阿里雲的OSS, 主要用做爲 圖牀。前段時間由於數據分析寫報告時,特意學了Shell,恰好Shell 就適合來處理這種數據量不是很大的數據,因而就花了點時間來遷移圖牀了。html

前提準備

  • 阿里雲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進行處理,由於個人數據不是不少,因而就直接手動上傳了。shell

當你上傳到 阿里雲 OSS 後,接下來就是 更換 URL 了,若是用 阿里雲 OSS,你能夠這樣,每上傳一張,而後你創建一張json文件,或者文本文件。用來映射源地址和現地址。
以後能夠再寫一個腳本,把你目前博客中的全部圖片URL 更換,最後 調用博客園的API push 到博客園上。json

由於沒有 API 接口權限,硬是純手動,我都要哭了。curl

有一個很蠢的事,我原本想用 並行的,就是從我最開始的博客Id 開始遍歷,到我目前最新的博客,我發現。有400多萬個博客數據須要處理,好笑的是我還真的寫了這個代碼,每一個命令用 & 後臺執行, 當我在命令行 敲出 sh command 時,只見電腦風扇瘋狂涌動,只能關機讓它冷靜冷靜,當時 cmd 是卡死了,發現博客園網站打不開。尷尬post

相關文章
相關標籤/搜索