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. 飞舟

    请问你的Proxifier是怎么配置的?

    1. Rat's
      @飞舟

      这个貌似还没用过

  2. 小飞鱼

    我的谷歌无限盘没有权限创建api 能否设置下载完一个一个的上传而不是同时上次呀?

    1. LY
      @小飞鱼

      无限盘能建的

    2. Rat's
      @小飞鱼

      用个人账号创建api

      1. 小飞鱼
        @Rat's

        好的,谢谢
        大佬推荐一个OVZ构架的debian9加速脚本呗,比如某某bbr啥的

        1. Rat's
          @小飞鱼

          OVZ BBR参考下面2个:
          https://www.moerats.com/archives/111/
          https://www.moerats.com/archives/398/

          1. 小飞鱼
            @Rat's

            好的,我服务器两个ip,用多ip不行,用单ip就行

  3. kenshin

    500错误,然后我重新跑了一遍命令现在还没跑完,是转存复制。10T重新之后大小变成了500G。以下是错误

    copy: googleapi: Error 500: Internal Error, internalError
    2019/08/05 08:03:20 ERROR : Attempt 3/3 failed with 149 errors and: googleapi: Error 500: Internal Error, internalError
    2019/08/05 08:03:21 Failed to copy with 149 errors: last error was: googleapi: Error 500: Internal Error, internalError

    1. Rat's
      @kenshin

      谷歌网盘一天好像最多750G,跑多就出问题

      1. bajins
        @Rat's

        超限可以看看这篇文章解决 https://blog.rhilip.info/archives/1135/

      2. kenshin
        @Rat's

        跑了20多天

  4. 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文件看看

  5. 放冰箱

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

    1. Rat's
      @放冰箱

      阔以,我一直是个人版api

  6. qtz173

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

    1. Rat's
      @qtz173

      会不会是受限了还是啥的

  7. 菜鸟

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

    1. 菜鸟
      @菜鸟

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

  8. kenshin

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

    1. Rat's
      @kenshin

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

  9. yavg

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

    1. Rat's
      @yavg

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

  10. 訪客

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

    1. Rat's
      @訪客

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

      1. 訪客
        @Rat's

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

        1. Rat's
          @訪客

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