如果遇到國外網站上的資源,大型文件如 Android studio 之類,即使使用了 vpn 也不見得能以較快速度下載,網絡條件較差時尤甚。
如果按照以下方法下載,能一定程度上解決這個問題:
- 在海外服務器上下載所需文件
- 傳輸到七牛雲對應的儲存區域
- 使用多線程下載工具下載到本地
準備工作
確保你的海外服務器與七牛雲的儲存區域儘可能一致,比如我使用了 digital ocean 在新加坡的服務器,七牛雲對應開啓了一個東南亞區域的儲存區域。其餘可能的組合比如美國的服務器+七牛雲北美位置的儲存區域。
如果找不到好的位置組合,可以查看你的服務器提供商是否允許更換服務器位置(通常這是被允許的)。
安裝七牛雲命令行客戶端 qshell
文檔見 命令行工具(qshell),qshell
是七牛云爲開發者提供的一個命令行客戶端,方便用戶在終端下僅文件的上傳下載等管理。
按照文檔說明,下載 qshell
二進制執行文件到本地:
mkdir qshell # 創建 qshell 文件夾
cd qshell # 進入該文件夾
wget http://devtools.qiniu.com/qshell-v2.1.8.zip?ref=developer.qiniu.com
linux 下使用 pwd
(print working directory)命令打印當前目錄:
[root@leto-revive qshell]# pwd
/root/qshll
獲知當前目錄,將 qshell
目錄添加到環境變量:
export PATH=$PATH:/root/qshell
這樣你可以在任何位置執行 qshell
的命令。
關於執行權限
如果在Linux或者Mac系統上遇到
Permission Denied
的錯誤,請使用命令chmod +x qshell
來爲文件添加可執行權限。這裏的qshell
是上面文件重命名之後的簡寫。
進行 qshell
的用戶設置
首先登錄七牛雲的個人中心,在密鑰管理頁面查看你的公私鑰:查看頁面。
假設你的公鑰(AK)是 gongyao
,私鑰(SK)是 siyao
,在終端執行命令添加公私鑰:
qshell account gongyao siyao
此時即完成了用戶配置,可以嘗試使用命令查看你的儲存區域(bucket):
[root@leto-revive down]# qshell buckets
2018/05/29 16:29:04 [I] Load account from /root/.qshell/account.json
bucket1
bucket2
補充說明
如果你使用命令 qshell -h
打印可用的命令,查看 bucket 的命令是 qshell listbucket
。但是實際上這條命令並不能執行。
下載文件到服務器
wget
命令是 linux 上非常好用的下載命令。
比如我想要下載這個頁面 kNN/機器學習實戰(中文版+英文版+源代碼 中的 pdf 文件。首先右鍵複製目標文件的鏈接,然後在服務器上使用如下命令進行下載:
wget https://github.com/frankstar007/kNN/blob/master/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%AE%9E%E6%88%98%EF%BC%88%E4%B8%AD%E6%96%87%E7%89%88%2B%E8%8B%B1%E6%96%87%E7%89%88%2B%E6%BA%90%E4%BB%A3%E7%A0%81%EF%BC%89/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%AE%9E%E6%88%98.pdf
digital ocean 的下載速度非常之快,可以說瞬間完成。
上傳文件到七牛雲
文件下載完成後,即可上傳到雲端。
使用 qshell rput
命令進行推送。參數列表爲:
Usage: qshell rput <Bucket> <Key> <LocalFile> [<Overwrite>] [<MimeType>] [<UpHost>] [<FileType>]
必須填寫的是前三個參數:
- Bucket:選定的儲存區域
- Key: 上傳後文件的名稱
- LocalFile: 需要上傳的文件路徑
因此想要上傳文件該文件,使用的命令爲:
qshell rput yourbucket name.pdf 機器學習實戰.pdf
很快就完成了。
下載到本機
進行了這麼多麻煩的操作,我們最終可以下載文件到本地了。
登錄七牛雲的儲存空間,打開你上傳的目標儲存區域,在文件列表中找到剛剛上傳的文件,複製文件外鏈。
然後打開迅雷等多線程下載工具,新建下載任務,粘貼這個外鏈,即可進行下載。