**此篇已废弃,请看新的:**https://hechuan.me/rclone
目前更新了两种方法。
第一种方法先你下载后就会自动上传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相关的都可以在这里面修改,改完记得重启。)
打开这个文件在这个最后加上一句命令。如图:
1
|
on-download-complete=/root/upload2one.sh
|
③:然后在**/root目录里新建一个upload2one.sh**文件。
然后打开编辑。
放入以下代码,如图:
④:注意这个需要根据你的实际情况修改的。
⑤:然后赋予这个文件755权限。可以直接在宝塔面板给权限。也可以输入命令:chmod +x /root/upload2one.sh,如下图:
⑥:重启vps
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/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)输入
1
2
|
cd /d d:\rclone
rclone authorize "onedrive"
|
复制,到cmd里面右键粘贴,回车。
提示以下内容
输入b
1
2
3
4
5
6
7
8
9
10
11
|
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系统。
输入:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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,回车。
1
2
3
4
5
6
7
8
9
10
11
12
|
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号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
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>**都留空。
如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
** 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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,因为我们没有可视化界面
|
然后提示这个,输入我们刚才保存的那一长串。
1
2
3
4
5
6
7
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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
1
2
3
4
5
6
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
Found drive 'root' of type 'business', URL: https://16753-my.sharepoint.com/personal/rixxx_hec_oxx/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
1
|
apt-get install -y screen
|
上传命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
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(大写)显示上传详情
注:上传的时候不要下载,下载的时候不要上传,不然下载速度贼慢。
|
完。两种方法各有利弊。可以共存。看你个人喜欢用那种的把