之前有人给我提出一个想法,GDrive无限容量,能不能用来挂PT!答案是,可以,但是不太好.
TL,DR!
挂载谷歌盘为普通目录:
rclone mount \ --buffer-size 512M \ --low-level-retries 200 \ --vfs-read-chunk-size 512M \ --cache-dir /var/rclone \ --copy-links \ --no-gzip-encoding \ --no-check-certificate \ --allow-other \ --allow-non-empty \ --daemon \ --vfs-cache-mode writes \ --poll-interval 5s \ --vfs-cache-max-age 3h \ pt:/ /mnt/rclone
如果要取消挂在,先关闭tranmission,再kill掉rclone,再用fusermount取消挂载,每一步都要确认上一步操作完成,否则可能有意想不到的结果.
限制 => 下载的单个最大种子必须小于服务器本身的磁盘剩余空间的一半.
解释 => 比如下载一个10G的文件,TR需要先申请10G的空间,但是下载过程可能有多下载的,最终大概12G左右也是有可能的,但是绝对不会超过20G,由于下载的东西不是立即上传的,所以需要本地缓存足够写入整个种子的文件大小.
限制 => --vfs-cache-mode 必须为Writes
解释 => 因为写入时候用到了f_seek,即使顺序下载也用了这个flag,所以最低只能用Writes
限制 => 谷歌API调用,按用户进行限制,每100秒最多1000个API Call
解释 => 这就相当于限制了这个模拟文件系统的性能,所以要想他跟硬盘比,不可能的.
配置限制:
参数--vfs-cache-max-age限制了缓存在本机存在时间,如果存在时间过短,则上传越频繁,TR下载时候会创建整个文件,所以上传也会上传整个文件,因为GD没有差异上传的功能.这样一个文件还没下载完,都上传了好多次了.如果存在时间过长,又会在硬盘放置很长的缓存文件 ,占用空间.
参数--buffer-size影响内存占用,但是如果太小,就会导致读写效率很低,因为大多数操作会从磁盘访问走,如果太大,内存又不够用.
不能在一个机器拉,另一个机器做种,因为,校验不过!(因为API超限,rclone就会掉,限速也不行.)