1. 程式人生 > >七牛雲測試域名到期博客圖片問題

七牛雲測試域名到期博客圖片問題

刪除列 方法 har 方便 管理 註釋 效果 http line

從上周末開始到今天,終於把七牛雲到期的測試域名所屬空間的博客照片遷移到騰訊雲。騰訊雲有一定量免費空間供用戶使用(發博文時免費額度:50 GB 標準存儲容量,10 GB CDN 回源流量,100 萬次讀請求,100 萬次寫請求。費用實例),希望騰訊雲短期內不要出對沒錢用戶的制裁條款。當然,出了我們也不用慌,再遷移便是,正所謂不折騰不舒服斯基。果然免費的都是要付出其它代價的~

備份七牛雲圖片到本地

方案一:如果此時你處在工作日時間,可以參考此鏈接教你如何在七牛雲域名過期後備份內容完成轉移,讓七牛雲技術人員臨時恢復你的測試域名,直接從該測試域名所屬的空間下載資源備份到本地,具體操作可參考此帖的1、2、6步驟即可。具體命令,時間久了可能官方會更新,若此帖的1、2、6步驟涉及的命令可能失效,此時命令可參考qshell。

此為方案一,可以完美完整備份雲端資源到本地,也是本人極力推薦的方案。

方案二:

您需要先新建一個同區域存儲空間,會分配一個新的測試域名到新空間。

1)qshell account 此處填寫ak 此處填寫sk 此處填寫自定義的用戶名 (ak sk可以在控制臺右上角的個人面板,密鑰管理裏找到)

2) 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過程中參考的帖子:

python中readline判斷文件讀取結束的方法

IOError: No such file or directory: but the files are there…

python 獲取一個文件夾裏面所有文件名(不加後綴)

以上

本來打算趁著這個當兒用回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 = '---' + '\n' + 'title: ' + filename2 + '\n' + 'date: 201-- 00:00:00' + '\n' + 'categories: ' + '\n' + 'tags: ' + '\n' + '---' + '\n\n'
                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)

七牛雲測試域名到期博客圖片問題