OneDrive的5T网盘拿来放电影

网上自己想办法去找账号

反正就是网上有人提供教育邮箱,申请一个学生账号,会给一个5T的网盘。

关键是5T网盘是免费的,能用多久不太清楚,网上也找不到实用的东西。

不过这种网盘是有管理员账号的,管理员可以查看网盘上的所有资料,所以公共的东西放上去就行了,私人的照片最好不要往上扔。

解决方案

  • 方案一:Aria2 下载到本地,oneindex上传至OneDrive,在线播放也是oneindex。

  • 方案二:或者 Aria2下载到本地,rclone把OneDrive挂载到本地,然后用mv命令移动到OneDrive,在线播放还是oneindex。

  • 方案三:rclone把OneDrive挂载到本地,然后Aria2的下载地址就用这个挂载到本地的路径,比如/mnt/OneDrive

  • 方案四:这个方案是我瞎弄的,可能流程都有问题。先用Aira2下载到本地,rclone把OneDrive挂载到本地,本地用samba共享下载盘和OneDrive,然后用Windows访问两个共享文件夹,把下载盘的东西复制到OneDrive。

四种解决方案都有问题

首先是方案一,用oneindex上传至OneDrive确实方便,但是如果是大文件的,上传时间会比较长,它是调用起一个php进程用来上传,每个进程理论上互不影响,也就是说可以同时上传多个文件,每个文件占用一定的内存和CPU来处理。

所以问题就来了,方案一是Aria2下载完成后自动执行上传脚本,(我目前只测试了单个文件上传,没有测试上传整个文件夹。)如果你晚上睡觉前一下子给Aria2挂了几十个任务,都是电影,每个电影的大小都在2G以上,然后第一个电影下载完了,会调起一个php进程,紧接着又下载完成一个,就又会调起一个php进程,由于国内的宽带上传都是小水管,4M/s恐怕已经是最高速度了,两个php进程会平分这一点点带宽,拖慢上传速度。更要命的是,紧接着又下载完成了几个任务,就又会调起一些php进程来瓜分带宽、内存和CPU。到最后一晚上恐怕服务器已经挂掉,一个也上传不成功。

方案二也是同样的问题。

方案三直接Aria2没有速度。

方案四复制的电影不能解码,可能是操作问题?不确定。

所以我想到一个改进的方案。

新的改进方案

前面已经安装了Aria2和AriaNg了,这里不再多说。

项目网址:oneindex

界面示例:Demo

用oneindex上传成功率是非常高的,上传的命令是php /path/to/your/oneindex/one.php upload:file /the/local/path/test.mp4 /upload/

  • 第一个参数是php,是你本地已经安装好php,并配置好了php的环境变量,如果没有配置环境变量,那么就需要用php的绝对路径了。
  • 第二个参数是oneindex的安装目录,最好不要用项目网址上推荐的安装办法,用docker安装的可能还不好管理,我认为。
  • 第三个参数是upload:file,这是固定的格式。
  • 第四个参数是要上传的文件路径,只要能找到对应的文件就可以,可以相对路径,也可以绝对路径。
  • 第五个参数是要上传到OneDrive的目标路径。

直接命令行执行会输出如下:

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
本地文件:/the/local/path/test.mp4
远程文件:upload/test.mp4
上传方式:分块上传
创建上传会话
上传分块320KB 268.7KB/s 0%
上传分块5MB 1.8MB/s 0%
上传分块35MB 2.9MB/s 0%
上传分块57.2MB 3MB/s 2%
上传分块60MB 3MB/s 5%
上传分块60MB 3MB/s 8%
上传分块59.7MB 3MB/s 10%
上传分块59.7MB 3MB/s 13%
上传分块60MB 3MB/s 16%
上传分块60.3MB 3MB/s 19%
上传分块60.3MB 3MB/s 22%
上传分块60MB 3MB/s 25%
上传分块60MB 3MB/s 28%
上传分块60.3MB 2.9MB/s 30%
上传分块58.1MB 3MB/s 33%
上传分块59.7MB 3MB/s 36%
上传分块59.7MB 3MB/s 39%
上传分块59.7MB 3MB/s 42%
上传分块59.7MB 2.5MB/s 45%
上传分块50.6MB 3MB/s 47%
上传分块60.9MB 3MB/s 50%
上传分块59.1MB 3MB/s 53%
上传分块59.4MB 3MB/s 56%
上传分块59.1MB 3MB/s 58%
上传分块59.4MB 3MB/s 61%
上传分块59.4MB 3MB/s 64%
上传分块59.7MB 3MB/s 67%
上传分块60MB 2.9MB/s 70%
上传分块58.4MB 3MB/s 73%
上传分块59.1MB 2.9MB/s 75%
上传分块57.8MB 2.9MB/s 78%
上传分块58.1MB 2.8MB/s 81%
上传分块56.6MB 2.9MB/s 84%
上传分块58.4MB 2.9MB/s 86%
上传分块58.1MB 2.9MB/s 89%
上传分块58.8MB 3MB/s 92%
上传分块59.1MB 2.9MB/s 95%
上传分块57.5MB 上传完成!

该上传文件的大小大概是2G

于是结合前面的方案一和方案二,有了新的方案。

首先,下载完成后执行脚本把下载完成的文件,移动到另一个目录,用脚本完成。

脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
path=$3
downloadpath='/aria2下载路径'
uploadpath='/中转路径' #临时存放需要上传的文件。
if [ $2 -eq 0 ]
then
exit 0
fi
while true; do
filepath=$path
path=${path%/*};
if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ]
then
#uploadpath=${filepath/#$downloadpath/$uploadpath}
mv -f "${filepath}" "${uploadpath}"
exit 0
elif [ "$path" = "$downloadpath" ]
then
mv -f "${filepath}" "${uploadpath}"/
rm -rf "${filepath}"
exit 0
fi
done

这样的速度是非常快的,一般电影2-10G,本地磁盘之间移动非常快。理论上不存在占用CPU或者内存过多的情况。

可以把这个文件保存成move.sh,随便放到哪个目录都可以,添加执行权限chmod +x move.sh

然后在aria2的配置文件中,最下边加入on-download-complete=/path/to/move.sh

重启aria2c即可。

然后,借助宝塔面板,定时执行Shell。

把上传脚本放进去,定时执行。比如每天执行一次。

脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
filepath='/中转路径' #前面脚本中的中转路径
max=$((1024*1024*200)) #if the size of the file is lager than 200M, then upload
for file in `ls ${filepath}`; do #get all the files in this folder
if [ -f ${filepath}${file} ]; then #if this is a file, then upload; if it's a folder, then pass.
size=`ls -l ${filepath}${file} | awk '{print $5}'` #the file size. if the file is 100M then it will be 100*1024*1024
if [ ${size} -gt ${max} ]; then
php /path/to/your/oneindex/one.php upload:file ${filepath}${file} /upload/ #upload the file.
rm ${filepath}${file} #delete after uploaded
fi
fi
done

该脚本会遍历中转目录中的所有文件,所有大于200M的文件都会上传,上传完成后删除。

如果想要上传所有文件,可以把200M的判断条件删除。

这个脚本的好处就是,只会执行一次,只有一个php进程,一次只上传一个文件,上传完成后再会上传下一个。

脚本执行的时间间隔不建议太短,比如10分钟执行一次,可能上一次的脚本还没有执行完。

为什么这个脚本不直接上传aria2下载目录的文件,为什么要一个中转目录?

你总不想让Aria2还没有下载完成,脚本就上传吧哈。

这个方案并不是百分百能成功的,不过这不是这个脚本的锅吧,我感觉。

昨天上传一部电视剧冰血暴的时候,就出现了上传不全的问题,不知道问题出在哪里。

日志如下:

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
57
58
59
60
61
62
本地文件:/home/upload/冰血暴.Fargo.S01E03.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
远程文件:upload/冰血暴.Fargo.S01E03.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
上传方式:分块上传
上传分块60.9MB »�ļþŚɝʧ°ڠ本地文件:/home/upload/冰血暴.Fargo.S01E04.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
远程文件:upload/冰血暴.Fargo.S01E04.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
上传方式:分块上传
创建上传会话
上传分块320KB 314.3KB/s 0%
上传分块5.9MB 1.8MB/s 0%
上传分块36.3MB 2.9MB/s 1%
上传分块57.5MB 3MB/s 7%
上传分块60MB 3MB/s 18%
上传分块59.7MB 2.8MB/s 28%
上传分块55.3MB 3MB/s 39%
上传分块60MB 3MB/s 49%
上传分块60MB 3MB/s 59%
上传分块60MB 2.6MB/s 70%
上传分块52.2MB 3MB/s 80%
上传分块59.4MB 3MB/s 89%
上传分块60MB 上传完成!
本地文件:/home/upload/冰血暴.Fargo.S01E06.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
远程文件:upload/冰血暴.Fargo.S01E06.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
上传方式:分块上传
上传分块57.5MB »�ļþŚɝʧ°ڠ本地文件:/home/upload/冰血暴.Fargo.S01E08.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
远程文件:upload/冰血暴.Fargo.S01E08.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
上传方式:分块上传
上传分块31.3MB »�ļþŚɝʧ°ڠ本地文件:/home/upload/冰血暴.Fargo.S01E09.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
远程文件:upload/冰血暴.Fargo.S01E09.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
上传方式:分块上传
创建上传会话
上传分块320KB 268.8KB/s 0%
上传分块5MB 1.7MB/s 0%
上传分块34.7MB 2.9MB/s 1%
上传分块57.5MB 3MB/s 7%
上传分块60.3MB 3MB/s 17%
上传分块60.3MB 3MB/s 27%
上传分块60MB 2.9MB/s 37%
上传分块58.8MB 3MB/s 47%
上传分块59.7MB 3MB/s 57%
上传分块60.3MB 3MB/s 67%
上传分块60MB 3MB/s 78%
上传分块60MB 3MB/s 88%
上传分块59.7MB 上传完成!
本地文件:/home/upload/冰血暴.Fargo.S01E10.End.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
远程文件:upload/冰血暴.Fargo.S01E10.End.中英字幕.WEB-HR.AC3.1024X576.x264.mkv
上传方式:分块上传
创建上传会话
上传分块320KB 273.8KB/s 0%
上传分块5.3MB 1.8MB/s 0%
上传分块35MB 2.9MB/s 1%
上传分块57.5MB 3MB/s 6%
上传分块60.3MB 3MB/s 14%
上传分块60.3MB 3MB/s 22%
上传分块60.6MB 3MB/s 30%
上传分块60MB 3MB/s 39%
上传分块59.4MB 3MB/s 47%
上传分块59.7MB 3MB/s 55%
上传分块60MB 3MB/s 64%
上传分块60.3MB 3MB/s 72%
上传分块60.3MB 3MB/s 80%
上传分块59.7MB 3MB/s 89%
上传分块59.4MB 上传完成!

乱码就是上传出问题的那几个文件

我检查了OneDrive,也没有看到有临时文件,所以不知道为啥出了问题。

播放软件有个致命的问题

当然这也不是oneindex的问题,所有的浏览器播放方案中应该都有这个问题。

oneindex播放.mkv格式的文件没有声音。

网上查了相关的资料,说是一部分.mkv格式的电影使用的音频编码是特殊的AC3,所以没有声音,额外的,可能视频编码H265(HEVC),播放黑屏,可能切成DPlayer也是一样的问题。

这是html5的问题,不是oneindex的问题。

所以有大量mkv电影的人要仔细考虑要不要上传了,没有声音就只能下载到本地才能播放了。

还有,希望作者能加入搜索功能。上传的文件太多了,找文件不头疼么。

非要用这个网盘的目的

既然有这么多不便,为什么还非要用这个网盘?

大费周张的找资源,先下载到本地,然后再上传到OneDrive。

可是你有没有发现这个用来分享非常方便。

即使是mkv文件不能在线播放,它下载的速度可不像百度云那么坑,基本上浏览器下载也是满速的。

现在百度云分享有限制,敏感资源根本分享不出去;115你懂的,不花钱就算了吧;别的网盘该倒的也早就倒了,你还想用迅雷?旋风?还是360?都是一个德性。

而且这个网盘是高度个性化的。用用就知道有多方便了。

Emby也可以分享,但是仅是针对本地磁盘上的吧。

我用rclone把OneDrive加载到了本地,然后Emby添加了这个目录,里面的视频能看到,但是要打开观看速度就非常感人了,基本上都在转圈。主要我的Emby服务器是内网穿透出来的,可能速度也会大打折扣。

Emby服务器太占内存了,不用的时候都占20%左右,更不要说播放视频的时候了。

需要服务器解码视频,当然要占内存,没办法。