七牛雲測試域名過時後如何備份文件

qiniu-logo.jpg

以前不少人都會使用【七牛雲】做爲圖牀,很是方便,可是後來七牛雲政策作了修改,測試域名只有30個天然日的試用期,到期將自動回收。致使存儲空間中文件或圖片既不能外鏈下載,也沒法從七牛雲的控制檯下載或預覽,所以不少博客中的圖片沒法顯示。html

若是想要繼續正常使用的話,須要綁定完成 ICP 備案的域名才能夠,可是進行 ICP 備案,還須要一臺國內主機,及一系列的手續,產生了沒必要要的費用及麻煩。linux

那麼如何將失效存儲空間中的文件或圖片下載下來呢?本篇將告訴你方法。git

1、使用自定義域名

若是您有一個完成 ICP 備案的域名,能夠與失效存儲空間進行綁定,綁定以後能夠繼續使用,也能夠將文件或圖片下載下來進行備份。github

此方法在此再也不贅述。shell

2、使用 qshell 備份文件

除了綁定自定義域名進行備份外,咱們還能夠經過 qshell 工具進行文件的備份。windows

qshell 工具是七牛雲官方提供得,方便開發者測試和使用七牛雲API的一個命令行工具。瀏覽器

qshell 官方文檔bash

qshell Github地址app

快速模式dom

# 在同存儲區域內建立一個新的存儲空間

# 帳號賦權
./qshell.exe account <AccessKey> <SecretKey> <Name>

# 獲取失效存儲空間的文件列表
./qshell.exe listbucket bucketError -o list.txt

# 處理文件,僅獲取第一列文件名
cat list.txt | awk '{print $1}' >list_final.txt

# 將失效存儲空間的文件複製到新的存儲空間
./qshell.exe batchcopy --force --overwrite bucketError bucketNew -i list_final.txt

# 下載文件
./qshell.exe qdownload download.conf
複製代碼

2.1 在七牛雲控制檯新建空間

使用瀏覽器進入七牛雲控制檯,在對象存儲中新建一個存儲空間,此存儲空間須要與失效的存儲空間在同一個【存儲區域】上(好比都在華東,不在同一存儲區域沒法拷貝)。此存儲空間被用來將失效存儲空間中的文件複製進去,由於新建的存儲空間有一個可使用30天的測試域名,因此能夠從這個新建的存儲空間中將原來的文件下載下來進行備份。

2.2 安裝 qshell 工具

qshell 工具下載地址爲:devtools.qiniu.com/qshell-v2.3…

下載完成後解壓,將會獲得對應三種操做系統的程序。

|-qshell-v2.3.5
  |-qshell_darwin_x64
  |-qshell_linux_arm
  |-qshell_linux_x64
  |-qshell_linux_x86
  |-qshell_windows_x64.exe
  |-qshell_windows_x86.exe
複製代碼

若是你是 Windows 系統的話,那麼你應該使用 qshell_windows_x64.exe 這個程序,由於這是一個命令行工具,因此雙擊打開會閃退,應該在命令行中操做。爲了簡化命令,可將其重命名爲 qshell.exe ,命令使用形式以下:

# CMD 命令格式
qshell.exe 命令 參數

# Git Bash 等類 Linux 終端命令格式
./qshell.exe 命令 參數
複製代碼

2.3 設置帳號密鑰

想要使用 qshell 操做七牛空間,須要添加帳戶密鑰 AccessKey 和 SecretKey, 賦予 qshell 權限。

# qshell-2.3.5 版本命令
./qshell.exe account <AccessKey> <SecretKey> <Name>

# qshell-2.2.0 版本命令
./qshell.exe account <AccessKey> <SecretKey>
複製代碼

AccessKey, SecretKey 兩個參數能夠從七牛雲-密鑰管理中獲取。

Name是用戶能夠任意取的名字,表示當前在本地記錄的帳戶的名稱,和在七牛註冊的郵箱信息沒有關係。

注:qshell-2.2.0 版本qshell-2.3.5 版本 命令上稍有差別。

qshell account 命令文檔

2.4 複製失效存儲空間文件至新存儲空間

  • 假設失效存儲空間名爲:bucketError
  • 假設新建存儲空間名爲:bucketNew

若想要將失效存儲空間的文件複製到新的存儲空間,首先須要獲取失效存儲空間的文件列表,使用 listbucket 命令進行文件列表的導出。獲取到文件列表後,使用 batchcopy 命令將 bucketError 中的文件所有複製到 bucketNew 中。

(1) 使用 listbucket 導出文件列表

# qshell-2.3.5 版本命令
./qshell.exe listbucket bucketError -o list.txt

# qshell-2.2.0 版本命令
./qshell.exe listbucket bucketError list.txt
複製代碼

list.txt 文件結構以下:

Hexo.png	33446	Fmmc-_RoRE19Gy86M_p3sEqt-Ue3	15475323542679537	image/png	0
atom.xml	249682	FhtSZviyys9iSIMyPBmuohWEJDcE	15475323543559808	application/xml	0
favicon.ico	4286	FiXUxb856CirSyQ78t3VQNQmCIZO	15475323543881185	image/x-icon	0
ssh_rsa.png	17895	FsImghWkk55vj06DIt6DAhhLzAxQ	15475323564546303	image/png	0
複製代碼

qshell listbucket 命令文檔

(2) 修改文件列表結構

這裏須要修改文件,只保留第一列的文件名,能夠用awk獲取list文件的第一列,否則沒法進行復制。

cat list.txt | awk '{print $1}' >list_final.txt
複製代碼

windows 系統中CMD沒法使用上面的命令,可使用 Git Bash 終端或手動修改文件。 list_final.txt 文件結構以下:

Hexo.png
atom.xml
favicon.ico
ssh_rsa.png
複製代碼

(3) 複製文件到新存儲空間

獲取到須要的文件列表 - list_final.txt 後,就能夠進行文件的複製了。使用 batchcopy 命令進行復制。 文件複製方向: bucketError -> bucketNew

# qshell-2.3.5 版本命令
./qshell.exe batchcopy --force --overwrite bucketError bucketNew -i list_final.txt

# qshell-2.2.0 版本命令
./qshell.exe batchcopy --force --overwrite bucketError bucketNew list_final.txt
複製代碼
  • force : 沒有此選項,須要輸入驗證碼,加入此項則不須要輸入。
  • overwrite :若是批量複製的文件列表中存在目標空間已有同名文件的狀況,針對該文件的複製會失敗,若是但願可以強制覆蓋目標文件,那麼可使用-overwrite選項。

qshell batchcopy 命令文檔

2.5 下載新存儲空間的文件

使用 qdownload 命令能夠將存儲空間中的文件下載到本地。可是該功能默認須要收取流量費用,若是想要免費下載,還需進行如下配置。

(1) 配置 download.conf

qshell 目錄下建立新文件 download.conf ,並將如下信息添加進去。

{
    "dest_dir"   :   "D:\\Images\\",
    "bucket"     :   "bucketNew",
    "cdn_domain" :   "xxxxxx.bkt.clouddn.com"
}
複製代碼
參數名 描述
dest_dir 本地數據備份路徑,爲全路徑,而且文件夾須要事先建立好,否則沒法下載
bucket 空間名稱
cdn_domain 設置下載的CDN域名,此處爲新建空間的測試域名。默認爲空表示從存儲源站下載,需支付源站流量費用,沒法減免!!!

備註:

  1. 在Windows系統下面使用的時候,注意dest_dir的設置遵循D:\jemy\backup這種方式。也就是路徑裏面的\要有兩個(\)。
  2. 在默認不指定cdn_domain的狀況下,會從存儲源站下載資源,這部分下載產生的流量會生成存儲源站下載流量的計費,請注意,這部分計費不在七牛CDN免費10G流量覆蓋範圍。

(2) 文件下載

配置好文件以後,可使用下面的命令進行文件下載:

# qshell-2.2.0 與 qshell-2.3.5 版本命令相同
./qshell.exe qdownload download.conf
複製代碼

下載完成後能夠在對應的文件夾中查看下載的文件。不論是備份,仍是更換圖牀都是能夠的了。

qshell qdownload 命令文檔

3、參考

  1. 七牛雲 qshell 官方文檔
  2. qshell Github地址
  3. Github 中關於此問題的issues

點擊閱讀原文

相關文章
相關標籤/搜索