网盘|PikPak云盘下载技巧
PikPak没有长时间的使用过,就不对PikPak的优缺点进行评价。这里就仅针对PikPak使用WebDAV挂在第三方批量下载时遇到的一些问题和解决方案做个记录。
1 下载速度限制
我分别使用了Alist和Rclone进行挂载,下面是我观察到的下载速度情况,需要根据自身文件的情况选择不同的方式下载。
1.1 Alist挂载
Alist挂载有两种模式,分别是使用媒体链接和禁用媒体链接。
使用媒体链接时,仅支持下载视频格式的文件,并且单文件最大下载速度为4MB/s。 禁用媒体链接时,支持下载所有格式的文件,单文件下载速度在100-500KB/s之间,偶尔能到1MB/s以上的速度。
1.2 Rclone挂载
使用Rclone挂载时,没有选择媒体链接的选项。在实际下载中,视频文件最高能到10MB/s,图片格式也是在100-500KB/s之间。
有些文件使用Rclone挂载下载会失败,但是使用Alist挂载可以下载成功。
2 下载线程数
下载线程数和文件格式有关系,对于图片类,可以将下载线程设置大一点,例如设成16。对于视频类,我推荐将线程设置为5,这是根据PikPak会员权益页的说明得到的。当然我也试过使用10个线程,总速度能达到100MB+/s以上的速度,但是持续不了多久,就会被限制。
对于图片文件,可以直接将线程设置的大一点,传输速度会快一点,很少会出现失败的情况。
对于视频文件少数情况下视频文件能直接10MB/s满速下载,多数情况是需要重试才能达到满速,或者一直在100-200KB/之间徘徊,或者速度直接是0/s,然后不断重试达到满速或者直接失败。
3 试错过程
3.1 使用Alist挂载
PikPak -> Alist -> Rclone,使用媒体链接模式。设置--min-size 10M排除图片等零碎文件,并且将线程数设置为--transfers=6。我发现能成功下载的文件只有2-4个,然后会出现一些文件卡住不动,没有速度的情况。为了避免长时间卡住,我又设置了超时时间--timeout=10s --contimeout=10s --expect-continue-timeout=10s --low-level-retries=3 --retries=3 --retries-sleep=5s。这个配置下,能以8-20MB/s的速度传输。
3.1 使用Rclone挂载
我在搜索Rclone PikPak的时候发现Rclone原生支持PikPak,尝试后发现单文件能有10MB/s的速度,使用10个线程甚至能到100+MB/s,惊艳到我了,所以我马上转到了Rclone挂载。进过一段时间的观察后发现,没有想象中的简单,设置线程太大,只是一开始速度很快,后面卡住不动的文件会越来越多,直到10个线程全部卡住,速度为0/s,我感觉是接口请求速率被限制了,所以马上调整传输方案。
在下载视频时,如果偶尔出现一段很多图片格式的文件,接口的请求速率就会增加,导致新近来的视频没有速度。
优先下载图片--include "{*.jpg,*.png,*.gif,*.webp}" --transfers=16,10000多个图片,1个小时传速完成。
接着下载视频 --include "{*.mp4,*.mkv,*.avi,*.mov,*.flv,*.ts}" --transfers=5,速度能在20-50MB/s之间徘徊,如果5个线程全部卡死,会出现rclone直接退出程序,需要执行rclone命令下载。rclone挂载下会出现部分文件下载失败的情况,这时转到Alist挂载进行补充下载。
4.总结
遇到难搞的网盘时,就需要一步一步尝试,然后找到适合的下载方案。
Rclone支持很多种下载方式,当遇到小文件较多时,我们可以指定--max-size 100M或者指定小文件的后缀--include "{*.jpg,*.png,*.gif,*.webp}",这样小文件就可以将线程设置大一点,以提升下载速度,对于视频或者相对较大的文件,就可以将线程设置小一点,将速度集中在大文件中,减少失败重试的次数。