解决Rclone挂载Google Drive时上传失败和内存占用高等问题
说明:之前看到有些人评论使用Rclone
挂载Gdrive
时,会出现部分文件上传失败和挂载崩掉等问题,后者在挂载OneDrive
时也会出现,所以这里就专门花了点时间测试了下这些问题,然后就水个解决方法。一般挂载Gdrive
的时候,默认是使用的官方提供的api
,所以高峰期上传文件的时候,由于很多人在用,导致api
的流量上限,会出现各种403
,ratelimit
等错误,最常见的报错提示为:Failed to get file: googleapi: Error 403: Rate Limit Exceeded, rateLimitExceeded
,然后目前的解决方法就是使用自己的api
。至于挂载崩掉的问题是可以通过调整部分参数来解决,这里就都一起说下。
方法
首先获取谷歌API
凭据,获取方法在之前很多文章都提过,这里就直接复制粘贴了,先启用Google Drive API
,启用地址:点击进入。
再创建一个OAuth client ID
,创建地址:点击进入。应用类型选择其他(Other
),名称自己填,这里博主填的Rclone
。
然后你会获得自己的客户端ID
和客户端密钥,再复制下来。
然后使用rclone config
命令配置的时候,会有部分提示:
#直接将你获取到的客户端id和密匙输进去即可
Google Application Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> #输入客户端id
Google Application Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> #输入客户端密匙
最后打开配置时的链接授权时候,就会显示我们自己设置的应用名称。
然后挂载命令如下:
#该参数主要是上传用的
/usr/bin/rclone mount DriveName:Folder LocalFolder \
--umask 0000 \
--default-permissions \
--allow-non-empty \
--allow-other \
--transfers 4 \
--buffer-size 32M \
--low-level-retries 200
#如果你还涉及到读取使用,比如使用H5ai等在线播放,就还建议加3个参数,添加格式参考上面
--dir-cache-time 12h
--vfs-read-chunk-size 32M
--vfs-read-chunk-size-limit 1G
主要参数这里大概说下,具体自己根据vps
配置进行调整。
--transfers:该参数控制最大同时传输任务数量,如果你cpu性能差,建议调低,但太低可能会影响多个文件同时传输的速度。
--buffer-size:该参数为读取每个文件时的内存缓冲区大小,控制rclone上传和挂载的时候的内存占用,调低点可以防止内存占用过高而崩溃,但太低可能会影响部分文件的传输速度。
--low-level-retries:该参数为传输文件没速度的时候重试次数,没速度的时候,单个会自动睡眠10ms起,然后再重试,不行,再睡眠更长一段时间,再重试,这样可以稍微加快文件上传进度。
如果你还不会使用rclone
挂载,或者不会设置开机自启的,可以参考该篇文章的部分内容→传送门
最后博主使用了自己的api
后,上传测试了700G
上限,基本一次也没出过403
等一些问题了,内存占用也还不高,不过限制了些参数后,体验肯定会差点。至于Onedrive
,博主也测试了下,貌似还没遇到上传问题,可能是使用rclone
挂载的人数没gdrive
多吧,至于其他问题也可以参考下本文设置。