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注册就送$50,可开日本/新加坡等机房,【点击注册】。
最后修改:2019 年 01 月 29 日 11 : 27 PM

发表评论 取消回复

49 条评论

  1. hihi

    博主请教一下一个问题,我现在在路由器上挂梯子速度很慢,在群晖上挂很快
    现在有个问题是在群晖上挂rclone并不会走群晖的梯子
    Google一番后发现rclone支持proxy配置
    我的sock5端口为32772,http/https端口为32771
    按照https://rclone.org/faq/设置如下
    export http_proxy=http://http://127.0.0.1:32711
    export https_proxy=$http_proxy
    export HTTP_PROXY=$http_proxy
    export HTTPS_PROXY=$http_proxy
    发现该设置不生效
    对了,我的设置保存在rclone.conf

    1. Rat's
      @hihi

      这种方式还没尝试过,你先把变量写进/etc/profile文件看看

  2. 放冰箱

    请问可以用个人版的api挂载教育版的吗

    1. Rat's
      @放冰箱

      阔以,我一直是个人版api

  3. qtz173

    大佬,和你请教一下,使用rclone copy,有很多提示input/output error ,是什么原因,Onedrive2onedrive,onedrive2Google drive都有出现这个情况。比如复制个600g,剩下50g的时候就全是这个报错了

    1. Rat's
      @qtz173

      会不会是受限了还是啥的

  4. 菜鸟

    大佬,为什么我用google drive API挂载后在vps上用使用谷歌网盘保存文件正常,也显示了占用了15g中的一部分,但是无法用iOS 端的网盘app查看到我保存在网盘上的文件,一直没有显示我在配置rclone 时候设置的文件夹。而且容量一直是零使用。
    当时我在ssh上设置了VPS这个文件夹,网盘里没有主动去新建。会不会是这个原因?

    1. 菜鸟
      @菜鸟

      抱歉,找到原因了…账号太多了搞混了

  5. kenshin

    大佬,ovz能用什么挂载gd?

    1. Rat's
      @kenshin

      好像都可以,不过看有没有给你开fuse,没有的话,需要发工单

  6. yavg

    好像今天开始不能申请新的API了. tos有改.
    https://i.loli.net/2019/03/12/5c86a08df41ec.png

    1. Rat's
      @yavg

      这个不清楚,应该不会禁止吧,你试试看

  7. 訪客

    請問這個方法要怎麼用在Duplicati上?

    1. Rat's
      @訪客

      这么没用过Duplicati,一般都是挂载后就行了

      1. 訪客
        @Rat's

        直接掛載的上傳速度太慢了……

        1. Rat's
          @訪客

          上传有时候肯定会受到一些因素影响的。

  8. Lyric

    博主,用Systemctl守护进程我一直就成功不了。
    rclone.service - Rclone
    Loaded: loaded (/etc/systemd/system/rclone.service; disabled)
    Active: failed (Result: exit-code) since Tue 2019-02-12 16:29:27 CST; 3s ago
    Process: 30141 ExecStop=/bin/fusermount -u /home/Gdrive (code=exited, status=1/FAILURE)
    Process: 30135 ExecStart=/usr/bin/rclone mount Irelia:/ /home/Gdrive --umask 0000 --default-permissions --allow-non-empty --allow-other --transfers 4 --buffer-size 128M --low-level-retries 200 --dir-cache-time 12h --vfs-read-chunk-size 32M --vfs-read-chunk-size-limit 1G (code=exited, status=1/FAILURE)
    Main PID: 30135 (code=exited, status=1/FAILURE)

    Feb 12 16:29:27 debian rclone[30135]: 2019/02/12 16:29:27 ERROR : Couldn't find home directory or read HOME or XDG_CONFIG_HOME environment variables.
    Feb 12 16:29:27 debian rclone[30135]: 2019/02/12 16:29:27 ERROR : Defaulting to storing config in current directory.
    Feb 12 16:29:27 debian rclone[30135]: 2019/02/12 16:29:27 ERROR : Use --config flag to workaround.
    Feb 12 16:29:27 debian rclone[30135]: 2019/02/12 16:29:27 ERROR : Error was: user: Current not implemented on linux/amd64
    Feb 12 16:29:27 debian rclone[30135]: 2019/02/12 16:29:27 NOTICE: Config file "/.rclone.conf" not found - using defaults
    Feb 12 16:29:27 debian rclone[30135]: 2019/02/12 16:29:27 Failed to create file system for "Irelia:/": didn't find section in config file
    Feb 12 16:29:27 debian systemd[1]: rclone.service: main process exited, code=exited, status=1/FAILURE
    Feb 12 16:29:27 debian fusermount[30141]: /bin/fusermount: failed to unmount /home/Gdrive: Invalid argument
    Feb 12 16:29:27 debian systemd[1]: rclone.service: control process exited, code=exited status=1
    Feb 12 16:29:27 debian systemd[1]: Unit rclone.service entered failed state.

    1. Rat's
      @Lyric

      错误提示没有/home目录 ,如果存在的话,你换个目录看看,还不行就帮你看看

      1. Lyric
        @Rat's

        我一开始是/usr目录,报错信息和这个貌似是一样的。博主有空的话我给你root吧 tg:https://t.me/vlyyy

        1. Rat's
          @Lyric

          你加我文章最下面留的微信吧,不怎么玩TG

  9. arrowarrow

    Google drive每天有750G流量限制,用这个可以超过吗

    1. Rat's
      @arrowarrow

      不能超过。

  10. da

    failed to get token怎么回事

    1. Rat's
      @da

      感觉是网络问题。

  11. da

    教育版无法启用aop啊

    1. Rat's
      @da

      这个我都是用的个人账号申请的api

  12. Rashc

    您的权限不足,无法为此项目启用或停用服务和 API。 这是怎么回事???

    1. Rat's
      @Rashc

      好像启用api界面的左上角有个项目选择按钮,你换成其它项目看看。

      1. Rashc
        @Rat's

        其他的也不行,我的也是教育版,咋回事啊??

        1. Rat's
          @Rashc

          你用个人版谷歌账号申请看看,我用个人版没出现这个情况

  13. SCGabriel

    (:3」∠ )
    其实传的流量很大的话,自己申请的api还是会出现 403错误

    当然咱出现这个错误的时候,已经连续好几天从GoogleDrive上拷文件了,大概也有7、8TB的流量了
    ┑( ̄Д  ̄)┍

    1. Rat's
      @SCGabriel

      你这没日没夜的,api都扛不住,还是得注意下身体吧。

  14. zturns

    alphracks给我挂alexamaster的vps暂停了,只剩虚拟主机玩,有啥好玩的程序没呢

    1. Rat's
      @zturns

      敢在超售大王上面挂机?

      1. zturns
        @Rat's

        挂了两天,给我suspend了,剩个虚拟主机

        1. Rat's
          @zturns

          不停你才怪,不然邻居遭殃

  15. zturns

    日常占坑

  16. 123123

    我发现KVM下的rclone比OVZ的慢多了,KVM速度几百kb/s,OVZ是满速,同样是100Mbps的宽带,不知道怎么回事,是因为四大金刚机器的问题吗?

    1. Rat's
      @123123

      与超售和性能都有关系,ovz机器很多资源共享,所以有时候只要超售不严重、邻居不折腾,有些方面体验会比kvm好些,但限制会比KVM多些。不过世界加钱可及,钱只要加够,不管是啥,体验都会很好。

      1. 123123
        @Rat's

        哈哈哈哈,那是的,有问题,是钱不够的问题。

  17. lexo

    我以前就经常遇到掉挂载问题,还是加了10G虚拟内存才好点

    1. Rat's
      @lexo

      是的,解决崩溃问题的最简单办法就是加内存

      1. lexo
        @Rat's

        之前我4G内存服务器一直挂后台跑,时间长就挂的进不去ssh了

        1. Rat's
          @lexo

          这点内存长时间跑是容易挂。

  18. 缙哥哥

    大神牛逼!

  19. 靳旭东

    有没有兴趣出一篇win下Rclone的使用教程

    1. Rat's
      @靳旭东

      这个不怎么用win服务器,方法其实都差不多的。

      1. 靳旭东
        @Rat's

        win挂载的时候那个命令不知道怎么搞。

        1. Rat's
          @靳旭东

          你把exe文件放进一个盘,比如D盘根目录,用cd /d d:命令进入D盘,挂载就直接用rclone.exe --allow-other后面加参数就行了。不过win一堆挂载工具,可以试试RaiDrive,https://www.moerats.com/archives/767/