正文索引 [隐藏]

目前更新了两种方法。


第一种方法先你下载后就会自动上传onedrive并删除源文件。


第二种方法先你下载后需要你手动输入上传命令来上传。上传完会自动删除源文件。

第一种方法:


①:如果不会Linux操作,可以直接用宝塔面板操作,可视化,简单。
首先配置Aria2吧,不会的看教程:https://hechuan.me/aria2
默认Aria2的下载目录是/usr/local/chttps://hechuan.me/aria2/addy/www/aria2/Download
可以就这样不改,也可以跟我一样改一下下载目录。
在根目录新建一个/1/download目录吧,来存放下载的文件。

②:打开/root/.aria2/aria2.conf文件。注:(这个就是Aria2的配置文件。Aria2相关的都可以在这里面修改,改完记得重启。)

打开这个文件在这个最后加上一句命令。如图:

on-download-complete=/root/upload2one.sh

③:然后在/root目录里新建一个upload2one.sh文件。
然后打开编辑。
放入以下代码,如图:

④:注意这个需要根据你的实际情况修改的。

⑤:然后赋予这个文件755权限。可以直接在宝塔面板给权限。也可以输入命令:chmod +x /root/upload2one.sh,如下图:

⑥:重启vps

#!/bin/bash
path=$3
downloadpath='/1/download'
if [ $2 -eq 0 ]
        then
                exit 0
fi
while true; do  #提取下载文件根路径,如把/root/downloads/a/b/c/d.jpg变成/root/downloads/a
filepath=$path
path=${path%/*};
if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ]  #如果下载的是单个文件
    then
    /www/server/php/56/bin/php /www/wwwroot/pan.lifan.ooo/one.php upload:file "$filepath" /upload/
    rm -rf "$filepath"
    exit 0
elif [ "$path" = "$downloadpath" ]   #文件夹
    then
    /www/server/php/56/bin/php /www/wwwroot/pan.lifan.ooo/one.php upload:folder "$filepath"/ /upload/"${filepath##*/}"/
    rm -rf "$filepath"/
    exit 0
fi
done

####请根据你的实际情况修改哦####

第二种方法。使用rclone上传。


第一步,先安装配置rclone
下载windows对应位数的压缩包:
网址:https://rclone.org/downloads/

解压到D:\rclone

管理员命令提示符(cmd)输入

cd /d d:\rclone
rclone authorize "onedrive"

复制,到cmd里面右键粘贴,回车。
提示以下内容
输入b

Choose OneDrive account type?
 * Say b for a OneDrive business account
 * Say p for a personal OneDrive account
####
翻译:选择OneDrive帐户类型?
*对于OneDrive企业帐户说b
*说个人OneDrive帐户的p
####
b) Business
p) Personal
b/p>    ####这里输入b,然后回车。####


回车后。会自动打开浏览器,登陆你的账号授权。
登陆成功,;浏览器显示如下图。

回到cmd,发现多了一大串字符。复制花括号里的所有字符,新建一个文档保存,一会要用。

打开你的SHH工具连接vps
我的是ubuntu系统。
输入:

apt-get update
apt-get install -y unzip fuse

####
然后输入下面
####

wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
chmod 0777 ./rclone-*/rclone
cp ./rclone-*/rclone /usr/bin/
rm -rf ./rclone-*

####
然后输入这个
####

rclone config

提示如下,输入n,回车。

2018/11/03 05:30:38 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> 

####
输入n后,提示如下
####

name>    ####随便,就叫onedrive1吧。因为你可能有很多网盘####

然后弹出一堆网盘序号,找到Onedrive的序号,输入,回车。
我这里是18

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
 1 / A stackable unification remote, which can appear to merge the contents of several remotes
   \ "union"
 2 / Alias for a existing remote
   \ "alias"
 3 / Amazon Drive
   \ "amazon cloud drive"
 4 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
   \ "s3"
 5 / Backblaze B2
   \ "b2"
 6 / Box
   \ "box"
 7 / Cache a remote
   \ "cache"
 8 / Dropbox
   \ "dropbox"
 9 / Encrypt/Decrypt a remote
   \ "crypt"
10 / FTP Connection
   \ "ftp"
11 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
12 / Google Drive
   \ "drive"
13 / Hubic
   \ "hubic"
14 / JottaCloud
   \ "jottacloud"
15 / Local Disk
   \ "local"
16 / Mega
   \ "mega"
17 / Microsoft Azure Blob Storage
   \ "azureblob"
18 / Microsoft OneDrive
   \ "onedrive"
19 / OpenDrive
   \ "opendrive"
20 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
21 / Pcloud
   \ "pcloud"
22 / QingCloud Object Storage
   \ "qingstor"
23 / SSH/SFTP Connection
   \ "sftp"
24 / Webdav
   \ "webdav"
25 / Yandex Disk
   \ "yandex"
26 / http Connection
   \ "http"
Storage>    ####找到onedrive的序号回车####

然后提示这个,不用输入,直接回车。client_id>client_secret>都留空。
如下代码:

** See help for onedrive backend at: https://rclone.org/onedrive/ **

Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> 

####这里不用输,直接回车####
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> 

####这里也不用输,直接回车。

然后提示这个,选择n

Edit advanced config? (y/n)
y) Yes
n) No
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
y/n> 

####选择n,因为我们没有可视化界面

然后提示这个,输入我们刚才保存的那一长串。

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:
result> 

####输入刚才我们保存的那一长串####

然后提示如下,输入1

Choose a number from below, or type in an existing value
 1 / OneDrive Personal or Business
   \ "onedrive"
 2 / Root Sharepoint site
   \ "sharepoint"
 3 / Type in driveID
   \ "driveid"
 4 / Type in SiteID
   \ "siteid"
 5 / Search a Sharepoint site
   \ "search"
Your choice>

####输入1####

然后提示如下,输入0

Found 1 drives, please select the one you want to use:
0: OneDrive (business) id=b!mWIWRok-S0uGU2MGCjAbkKhff3nZ5ANOnS9R1RHjMrWPaOtjgbVSb3jeS_69myY
Chose drive to use:>    ####输入0####

####翻译####
找到1个驱动器,请选择您要使用的驱动器: 0:OneDrive(业务)id = b!mWIWRok-S0uGU2MGCjAbkKhff3nZ5ANOnqS9R1RHjMrWPaOtjgbVSb3jeS_69myY 选择使用驱动器:>

然后提示如下,输入y

Found drive 'root' of type 'business', URL: https://16753-my.sharepoint.com/personal/river_hechuan_ooo/Documents
Is that okay?
y) Yes
n) No
y/n>    ####输入y####
y) Yes this is OK    ####翻译:是的,这是正常的####
e) Edit this remote    ####翻译:编辑此遥控器####
d) Delete this remote    ####翻译:删除此遥控器####
y/e/d>

####输入y####
Current remotes:

Name                 Type
====                 ====
onedrive1            onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>

####已经完成了,输入q退出####

还需要安装个screen

apt-get install -y screen

上传命令

rclone move source:path dest:path

source:path是本地目录
dest:path是云端目录

其中dest是网盘名称,就你刚才随便取的那个
path就是目录

你可以指定上传到哪一个文件夹

比如说,我要把本地的/root/download目录下所有的文件移动到onedrive里面的/upload文件夹里面

命令应该是rclone move /root/download onedrive1:/upload

但是这样上传的话,他一直在前台上传,占用你的ssh。
想让他变成后台,在前面加上screen

命令就是:screen rclone move /root/download onedrive1:/upload

这样你就可以关掉ssh,他就可以在后台上传

等你想看看传完了没有的时候,
screen -ls就可以看到后台screen进程。

如果文件目录比较复杂,而且文件数量庞大
可以提高线程,他默认是4线程,测试后发现100M带宽32线程效果最好。(根据你的vps而定线程。)

所以最终的命令是:

screen rclone move /root/download onedrive1:/upload --transfers 32

可以在后面再加一个参数 -P(大写)显示上传详情

注:上传的时候不要下载,下载的时候不要上传,不然下载速度贼慢。

完。两种方法各有利弊。可以共存。看你个人喜欢用那种的把