Rat's

解决Rclone挂载Google Drive时上传失败和内存占用高等问题
说明:之前看到有些人评论使用Rclone挂载Gdrive时,会出现部分文件上传失败和挂载崩掉等问题,后者在挂载On...
扫描右侧二维码阅读全文
29
2019/01

解决Rclone挂载Google Drive时上传失败和内存占用高等问题

说明:之前看到有些人评论使用Rclone挂载Gdrive时,会出现部分文件上传失败和挂载崩掉等问题,后者在挂载OneDrive时也会出现,所以这里就专门花了点时间测试了下这些问题,然后就水个解决方法。一般挂载Gdrive的时候,默认是使用的官方提供的api,所以高峰期上传文件的时候,由于很多人在用,导致api的流量上限,会出现各种403ratelimit等错误,最常见的报错提示为: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多吧,至于其他问题也可以参考下本文设置。

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2019 年 01 月 29 日 11 : 27 PM

发表评论

77 条评论

  1. AU

    大佬,现在rclone挂载谷歌网盘,最后面不在有谷歌的授权网址了,这个咋整

  2. wenta

    大佬,群晖挂载googledrive后无法用filestation上传东西,备份也无法选取挂载的硬盘,用cp和rclone sync可以拷贝进去。有什么办法让file station支持上传吗

  3. wenta

    群晖挂载分享盘后可以读取到Gdrive的文件,但是上传文件提示无法执行此操作,可能是网络问题(连接失败),但是我直接连接个人盘可以上产,请问大佬是什么问题

  4. liu

    你好,现在应用类型没有其他选项了。不知道选哪个。

    1. wenta
      @liu

      桌面应用

  5. 大王来巡山

    博主,有时间更新一下申请 OAuth client ID
    教程里的跟官网的不一样了

    1. Rat's
      @大王来巡山

      额,有时间看看,不过都是差不多,自己用翻译多看看就会了

  6. VDB

    rclone好像出web ui了,博主大佬能不能出个教程讲讲怎么使用,自己试过总是404。

    1. Rat's
      @VDB

      web ui最开始用过,感觉不是很顺,就没水,我再看看先

  7. kenshin

    用aria2自动上传脚本还是会有文件丢失,还有些视频播放不了

  8. ccw

    你好,我的OAuth 2.0 Client ID显示usage with all services(last 30 days),请问如果超出了这个时间限制有问题吗,还是说要重新申请呢

    1. Rat's
      @ccw

      这个不是很清楚,可以先用着

  9. bbzz

    博主经过我多次测试,发现还是Plexdrive挂载网盘时内存控制最好,实测512m内存,不加虚拟内存。跑plex没问题,4k在线观看都不会内存溢出。然而rclone 用一会儿内存就溢出,然后就进程就挂了。所以推荐plex挂载的方式

    1. Rat's
      @bbzz

      rclone其实也还行,就是没测试出适合的最佳参数是啥

  10. mua

    此应用未经过验证
    此应用尚未经过 Google 验证。请仅在您认识并信任开发者时才继续访问。

    如果您是开发者,请提交验证请求以移除此屏幕

    1. Rat's
      @mua

      这个要是能用的话,可以不用管