上期給大家介紹了Go語言BT下載利器CloudTorrent,那么這期給大家?guī)淼囊琅f是一款基于Go語言的應(yīng)用——Rclone。Rclone是一款非常強(qiáng)大的網(wǎng)盤工具,能夠幫助用戶在終端界面管理包括Dropbox、Box、Onedrive、Gdrive、Mega等在內(nèi)的主流網(wǎng)盤中的各類資源,同時實用的掛載功能能夠把網(wǎng)盤掛載到本地(OpenVZ架構(gòu)的VPS不支持掛載)服務(wù)于Aria2、CloudTorrent等下載工具以及FileBrowser等私人網(wǎng)盤工具。
Rclone-GitHub首頁:https://github.com/ncw/rclone
檢查Rclone支持的網(wǎng)盤以及Rclone的官方安裝腳本請前往GitHub,本文繼續(xù)以Debian 9 VPS為例示范手動安裝方法,Windows版本不另作示范。
介于上期內(nèi)容許多家友覺得復(fù)雜,本期起取消所有的基礎(chǔ)命令解釋,想要學(xué)習(xí)手動配置但是基礎(chǔ)薄弱的家友可以自己搜索相關(guān)命令的含義進(jìn)行更改。
一、下載安裝
復(fù)制以下命令到終端或者SSH工具中執(zhí)行(整體復(fù)制,一個回車):
yum install unzip -y
apt-get install unzip -y
wget https://downloads.rclone.org/v1.44/rclone-v1.44-windows-amd64.zip
unzip rclone-v1.44-windows-amd64.zip
cd rclone-*/
mv rclone /usr/bin/
chmod 755 /usr/bin/rclone
mkdir -p /usr/local/share/man/man1
mv rclone.1 /usr/local/share/man/man1/
cd ..
rm -rf rclone-*
安裝成功檢查:
此時執(zhí)行rclone命令出現(xiàn)相關(guān)指令的幫助證明安裝成功。
注意:
權(quán)限不足手動sudo或者sudo su啟動root賬戶,通常VPS默認(rèn)帳戶為root帳戶。
為方便配置網(wǎng)盤的示例展示,這里選擇rclone-1.44-linux-amd64版本的Rclone,如果需要不同版本請自行更換參數(shù)。
Rclone版本檢查頁面:https://downloads.rclone.org/
二、配置網(wǎng)盤
1.本地配置
這里我們以O(shè)nedrive for business為例,其余網(wǎng)盤根據(jù)應(yīng)用提示進(jìn)行操作。
執(zhí)行rclone config命令進(jìn)行配置
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
無遠(yuǎn)端配置,請新建
n)新建
s)設(shè)置配置訪問密碼
q)退出配置
輸入n新建
遠(yuǎn)端網(wǎng)盤命名(配置好后以此命名操作網(wǎng)盤)
輸入one作為示范
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
Storage
選擇配置的存儲類型
輸入配置值,回車表示默認(rèn)
選擇以下你需要的存儲類型
輸入18選擇Onedrive作為示范
Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
微軟App Client Id
通常留空
輸入配置值,回車表示默認(rèn)
輸入回車留空
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
微軟App Client Secret,同上
輸入回車留空
Edit advanced config? (y/n)
y) Yes
n) No
是否進(jìn)行高級配置
y)是
n)否
輸入n否
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
遠(yuǎn)端配置
是否使用自動配置
是-通常情況
否-如果你使用遠(yuǎn)程訪問或者無圖形界面設(shè)備
y)是
n)否
輸入y啟動瀏覽器登陸Onedrive進(jìn)行授權(quán)
輸入n否,以無圖形界面瀏覽器的VPS作為示范
2.遠(yuǎn)端授權(quán)
如果使用谷歌網(wǎng)盤等靜態(tài)授權(quán)口令的網(wǎng)盤可以登陸網(wǎng)盤相關(guān)界面獲取,微軟Onedrive采用動態(tài)授權(quán)口令這里需要我們準(zhǔn)備裝有圖形界面瀏覽器和Rclone的設(shè)備,Linux圖形版本同下載安裝步驟操作,Windows版本不另作示范。
裝有圖形界面瀏覽器和Rclone的設(shè)備在終端中執(zhí)行:
rclone authorize "onedrive"
此時若終端不能調(diào)用瀏覽器,請手動用瀏覽器打開鏈接。
瀏覽器中授權(quán)成功后返回終端會生成自動授權(quán)碼。
復(fù)制這兩者間的所有內(nèi)容
<---End paste
3.繼續(xù)本地配置
For this to work, you will need rclone available on a machine that has a web browser available.
Execute the following on your machine:
rclone authorize "onedrive"
Then paste the result below:
這種工作模式你需要一臺能裝有Rclone和瀏覽器的設(shè)備
在該設(shè)備上執(zhí)行rclone authorize "onedrive"獲取授權(quán)碼
把授權(quán)碼粘貼在此
粘貼我們復(fù)制的授權(quán)碼
Choose a number from below, or type in an existing value
Your choice
選擇以下數(shù)值選擇Onedive類型
1)OneDrive Personal or Business -Onedrive個人版或者企業(yè)版
2)Root Sharepoint site - Sharepoint站點
其余不常用
輸入1,以O(shè)nedrive for business作為示范
Found 1 drives, please select the one you want to use:
0: OneDrive (business) id=Onedrive ID
Chose drive to use:
找到1個存儲驅(qū)動器,請選擇你需要的
輸入0,某些Onedrive會有多個存儲驅(qū)動器
Found drive 'root' of type 'business', URL:
Is that okay?
y) Yes
n) No
找到存儲驅(qū)動器類型為企業(yè)版,訪問鏈接為:這個鏈接就是Onedrive映射到Windows本地磁盤的地址
是否正確
輸入y
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d
這里Rclone會報一些網(wǎng)盤的配置參數(shù)
y)確定
e)編輯
d)刪除
輸入y,完成
三、使用命令
復(fù)制rclone copy source:sourcepath dest:destpath
移動rclone move source:sourcepath dest:destpath
刪除文件rclone delete
刪除空目錄rclone rmdir
刪除內(nèi)容無視目錄非空rclone purge remote:path
列表rclone ls remote:path
同步rclone sync source:path dest:path
示范中配置的Onedrive命名為one:
列出Onedrive的A0目錄下的文件內(nèi)容
rclone ls one:/A0
復(fù)制Onedrive的A0目錄到本地的/home目錄下
rclone copy one:/A0 /home
更多操作命令請訪問Rclone官方網(wǎng)站或者GitHub。
四、掛載網(wǎng)盤
復(fù)制以下命令到終端或者SSH工具中執(zhí)行:
yum install fuse -y
apt-get install fuse -y
mkdir /root/1drive
rclone mount one:/ /root/1drive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
掛載成功檢查:
掛載成功執(zhí)行df -h會在分區(qū)中顯示掛載的網(wǎng)盤信息。
注意:
這里使用的是示范中命名為one的Onedrive網(wǎng)盤以及掛載到本地的/root/1drive目錄下,配置或者需求不同的家友可以手動修改。掛載完成后便可以放棄rclone的命令,進(jìn)而像本地磁盤那樣操作Onerdive中的內(nèi)容了。
OpenVZ架構(gòu)的VPS不支持掛載!
掛載命令開機(jī)自啟動
復(fù)制以下命令到終端或者SSH工具中執(zhí)行(整體復(fù)制,一個回車):
cat <<eof /usr/lib/systemd/system/1drive.service
[Unit]
Description=1drive
[Service]
User=root
ExecStart=/usr/bin/rclone mount one:/ /root/1drive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
Restart=on-abort
[Install]
WantedBy=multi-user.target
eof
systemctl daemon-reload
systemctl start 1drive
systemctl enable 1drive
systemctl status 1drive
注意:
這里ExecStart=后面的參數(shù)根據(jù)自己的配置進(jìn)行修改,這里僅以示范為例。
五、其他說明
如果我們把Rclone掛載的目錄設(shè)為Aria2或者CloudTorrent的下載目錄,可以看到顯示的剩余空間確實是網(wǎng)盤空間(CloudTorrent按照1000進(jìn)制計算的容量會偏大),但是這樣直接把網(wǎng)盤掛載目錄作為下載目錄的操作會導(dǎo)致下載的緩存文件下載的瞬間就被上傳,并不能生成一個完整的下載文件。
CloudTorrent由于應(yīng)用本身的問題目前只能夠手動上傳,而Aria2可以利用其配置來設(shè)置上傳腳本實現(xiàn)下載完成自動上傳Onedrive的,就此實現(xiàn)Onedrive的離線下載功能。
Aira2自動上傳腳本
#!/bin/bash
GID="$1";
FileNum="$2";
File="$3";
MinSize="5" #限制最低上傳大小,默認(rèn)5k
MaxSize="157286400" #限制最高文件大小(單位k),默認(rèn)15G
RemoteDIR="/RATS/"; #rclone掛載的本地文件夾,最后面保留/
LocalDIR="/download/"; #Aria2下載目錄,最后面保留/
if [[ -z $(echo "$FileNum" |grep -o '[0-9]*' |head -n1) ]]; then FileNum='0'; fi
if [[ "$FileNum" -le '0' ]]; then exit 0; fi
if [[ "$#" != '3' ]]; then exit 0; fi
function LoadFile(){
IFS_BAK=$IFS
IFS=$'\n'
if [[ ! -d "$LocalDIR" ]]; then return; fi
if [[ -e "$File" ]]; then
FileLoad="${File/#$LocalDIR}"
while true
do
if [[ "$FileLoad" == '/' ]]; then return; fi
echo "$FileLoad" |grep -q '/';
if [[ "$?" == "0" ]]; then
FileLoad=$(dirname "$FileLoad");
else
break;
fi;
done;
if [[ "$FileLoad" == "$LocalDIR" ]]; then return; fi
EXEC="$(command -v mv)"
if [[ -z "$EXEC" ]]; then return; fi
Option=" -f";
cd "$LocalDIR";
if [[ -e "$FileLoad" ]]; then
ItemSize=$(du -s "$FileLoad" |cut -f1 |grep -o '[0-9]*' |head -n1)
if [[ -z "$ItemSize" ]]; then return; fi
if [[ "$ItemSize" -le "$MinSize" ]]; then
echo -ne "\033[33m$FileLoad \033[0mtoo small to spik.\n";
return;
fi
if [[ "$ItemSize" -ge "$MaxSize" ]]; then
echo -ne "\033[33m$FileLoad \033[0mtoo large to spik.\n";
return;
fi
eval "${EXEC}${Option}" \'"${FileLoad}"\' "${RemoteDIR}";
if [[ $? == '0' ]]; then
rm -rf "$FileLoad";
fi
fi
fi
IFS=$IFS_BAK
}
LoadFile;
<———以上是腳本內(nèi)容———
使用:
/root目錄新建名為rcloneupload.sh的腳本并編輯為以上內(nèi)容,授權(quán)chmod +x rcloneupload.sh,然后再到Aria2配置文件中加上一行on-download-complete=/root/rcloneupload.sh即可,后面為腳本的路徑。最后重啟Aria2生效。
依照#后的描述自行根據(jù)實際配置進(jìn)行更改。
MaxSize="157286400" #不要大于這個值,目前Onedrive最大只支持15GB的單文件
RemoteDIR="/RATS/"; #Rclone配置示范中的掛載地址是/root/1drive/
LocalDIR="/download/"; #檢查自己Aria2的下載目錄
說明:
此腳本并非本人所著且沒有經(jīng)過驗證,使用相關(guān)的幫助以及原理可以訪問腳本作者關(guān)于此腳本的說明頁面:https://www.moerats.com/archives/482/
對原腳本作者和修改作者萌咖和萌鼠兩位大佬表示感謝。
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。