使用Service Account接力rclone,突破GD单账号每日上传750G限制

Rhilip 2019-10-11 AM 36146℃ 27条

嗯,标题比较绕口,改了好几遍都觉得不好。
不过本文的目的在于:

暂时只针对本地文件上传GD/TD,GD/TD内互传可能不适用

  1. 创建Service Account并添加到teamdrive(现在也叫共享云端硬盘)中。(至于为什么要用SA,当然是因为创建真实用户账户成本过高,而且不能批量添加呀。)
  2. 使用python脚本运行rclone,以多账户协力的形式突破单账号750G上传限制,并在对应账户上传超限(750G/帐号)时进行切换。

其中第一步的主要思想来自folderclone,第二步相关实践来自 @superstaraug 等人,对此分别表示感谢。

成品项目见:https://github.com/Rhilip/AutoRclone

此文的目的在于上传文件到共享云端硬盘,仅在部分步骤中利用了folderclone相关脚本(所以偷懒直接fork修改了)来批量创建Service Account并添加到teamdrive中。
如果你对foldercloneTD to GDshared to GD(即“他人分享转成自己可管理文件”),TD to TD等Google Drive内部文件捣腾玩法感兴趣,你可以参考本文的参考链接第一条。

参考链接:

补充方案: rclone 750G 自动换号 – AutoRclone – Google 迷

本文非 https://github.com/xyou365/AutoRclone 项目相关介绍及教程,请勿在本人Blog中询问。

============================

请注意:本教程第一、二部分教程使用OAuth2客户端形式完成,与 567899.xyz 等人手动创建辅助账户不同,请视你需要,选择本教程或参考该他人教程,完成Service Account的创建以及Shared Drive用户添加,并得到SA的JSON文件。如果你已经完成了上述步骤,请直接跳转本教程第三部分Rclone设置。

请根据你个人需求创建项目数量,已知限制如下

  1. 一个真实帐号最多能创建12(或25)个项目,每个项目最多100个SA账户,每个账户(无论是真实还是SA)每日最多上传750G
  2. 一个共享云端硬盘最多添加600个账户

创建Google Cloud项目

一、在 Google云端控制台 上新建项目,填入项目名称并完成创建

1570709104710.png

二、点击【OAuth同意屏幕】,填入应用名称并点击最下面的保存

1570709308683.png

三、保存后会自动跳转到【凭据】页面,点击创建【OAuth客户端ID】

1570709407196.png

应用类型选【其他】

1570709497698.png

不用在意弹出的客户端ID和密钥窗口,直接点击下载JSON格式的认证文件,并重命名为credentials.json备用。

1570709606800.png

使用Folderclone中脚本添加共享云端硬盘成员

如果你使用科学方式上网,请保证CMD走代理!!!!!
请使用有浏览器环境(非Remote或者headless)的环境进行配置

一、 安装Python3,克隆项目文件,使用pip安装依赖(具体步骤就不搬运截图了)

git clone https://github.com/Rhilip/folderrclone.git
cd folderrclone
pip3 install -r requirements.txt

二、将前面JSON格式的OAuth凭据文件credentials.json复制到项目文件夹目录下,并运行multifactory.py文件

cp credentials.json .
python multifactory.py --quick-setup 1

其中,--quick-setup后面跟着的数字为你想要创建的Project数量,并在每个project中创建满100个Service Account。(当该数字大于你能有的最大项目数(12)时,会为当前所有project添加SA帐号。)

会弹出Google登录页面,登录你刚才创建项目帐号,由于我们是随意创建的OAuth应用会提示应用未经过认证,不用管它,点开高级,并转至该应用。

1570710231244.png

然后在新的页面中允许应用申请的3个权限

1570710318361.png

并确认

1570710355751.png

然后回到Python窗口,其中可能出现如下提示,打开画线部分链接,并启用【Service Useage API】

1570710691753.png

1570710787359.png

启用后稍等几秒回到Python窗口,等待应用跑完(消耗时间视你创建Service Account数量)。

1570711532924.png

multifactory.py 还支持以下调用参数,如果你不知道具体用法则不用附加。
其中我觉得还有用的有 --new-only 方法,这样可以保证创建的Service Account都在新的项目中,而不占用老项目的名额空间,因为默认情况下multifactory脚本会首先尝试在已经存在的项目中创建Service Account。

1570711893413.png

跑完后在项目目录会自动生成 accounts目录,其中一堆JSON文件就是我们需要的service_account_credentials文件,留存备用

1570711771003.png

三、然后使用folderclone脚本将生成的Service Account用户添加到该共享云端硬盘中,folderclone会自动设置Service Account权限为内容管理员。

查看【共享云端硬盘】的ID,请注意你(即前面创建并认证登录的用户)应该是该共享云端硬盘的管理员角色

1570712181991.png

然后运行下面命令,其中SDFolderID需要改成前面查看的对应【共享云端硬盘】的ID

python masshare.py -d SDFolderID

1570712330951.png

结果如下,可以看到前面生成的IAM账户均被添加到该【共享云端硬盘】中了

1570712442974.png

设定rclone自动备份及切换

通常情况下(即本人是这么使用的),我们用crontab定时跑一个rclone move/copy/sync方法,这样会存在几个问题,即:

  • 如果crontab时间过密,前一个rclone尚未跑完就拉起了另一个rclone进程(特别是750G后长时间等待),导致产生了大量rclone占用系统io资源
  • rclone在消耗完某一账户的750G后不能自动更换,导致长时间等待。
  • 使用--max-transfer 750G(或更低的配额)做限制。在触碰到限制时,rclone会直接退出而不是平滑停止,即不考虑将正在传输的文件传完。(#2672

本处尽可能尝试解决这些问题。

一、修改设置rclone配置文件

修改rclone配置文件(一般位于$HOME/.config/rclone/rclone.conf),添加如下字段

[GDrive]
type = drive
scope = drive
service_account_file = 
team_drive = SDFolderID

其中SDFolderID需要改成前面查看的对应【共享云端硬盘】的ID

注意:

  • 你也可以使用rclone config的形式交互添加,并在rclone提示如下信息时,任意填入一个上面步骤在account目录生成的JSON文件
Service Account Credentials JSON file path
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default ("").
service_account_file> C:\Repositories\folderclone\accounts\xxxxxxxxxxxxxxxxxxx.json
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n
Remote config
Configure this as a team drive?
y) Yes
n) No
y/n> y
Fetching team drive list...
Choose a number from below, or type in your own value
 1 / xxxxxxx@xxxxxx
   \ "xxxxxxxxxxxxxxxxxx"
Enter a Team Drive ID> 1

以下为一家之言:个人认为没有必要进行该设置,因为根据Rclone的官方文档说明,他们的API限额经过了特殊的提升,你自己申请的不一定能比得上。如果你没有遇到该问题,请使用rclone默认,即不要添加client_idclient_secert配置项

填入自己的client id和client secert信息后配置项结构如下(修改字段ClientID,ClientSecert,SDFolderID

[GDrive]
client_id = ClientID
client_secert = ClientSecert
type = drive
scope = drive
service_account_file = 
team_drive = SDFolderID

二、配置autorclone.py参数

autorclone.py文件是本人在 @superstaraug 等人实践上修改的rclone多帐号切换脚本

注意:如果你没有使用本教程前面的步骤,你可能需要安装python依赖库,方法如下

pip3 install psutil filelock

使用前需要修改部分配置信息(该部分可能随版本迭代有些不同,请根据你使用的文件配置说明修改)

vi autorclone.py

依次设置如下配置项,请根据注释说明修改
(如果你是在linux上跑的脚本,一般不需要对配置项进行较多的更改,修改sa_json_foldercmd_rclone基本就可以了)

这里只是配置项信息,完整python文件请在文章开头的Github中下载

# ------------配置项开始------------------

# Account目录
sa_json_folder = r'/root/folderrclone/accounts'  # 绝对目录,最后没有 '/',路径中不要有空格

# Rclone运行命令
# 1. 填你正在用/想要用的,这里写的是move,也可以是copy/sync ......
# 2. 建议加上 `--rc` ,不加也没事,后面脚本会自动加上的
# 3. 因为不起screen,如果你希望关注rclone运行的状态,请一定要用 `--log-file` 将rclone输出重定向到文件
cmd_rclone = 'rclone move /home/tomove GDrive:/tmp --drive-server-side-across-configs -v --log-file /tmp/rclone.log'

# 检查rclone间隔 (s)
check_after_start = 60  # 在拉起rclone进程后,休息xxs后才开始检查rclone状态,防止 rclone rc core/stats 报错退出
check_interval = 10  # 主进程每次进行rclone rc core/stats检查的间隔

# rclone帐号更换监测条件
switch_sa_level = 1  # 需要满足的规则条数,数字越大切换条件越严格,一定小于下面True(即启用)的数量,即 1 - 4(max)
switch_sa_rules = {
    'up_than_750': False,  # 当前帐号已经传过750G
    'error_user_rate_limit': False,  # Rclone 直接提示rate limit错误
    'zero_transferred_between_check_interval': True,  # 100次检查间隔期间rclone传输的量为0
    'all_transfers_in_zero': False,  # 当前所有transfers传输size均为0
}

# rclone帐号切换方法 (runtime or config)
# runtime 是修改启动rclone时附加的 `--drive-service-account-file` 参数
# config  是修改rclone的配置文件 `$HOME/.config/rclone/rclone.conf` ,此时你需要指定后面的rclone配置参数参数
switch_sa_way = 'runtime'

# rclone配置参数 (当且仅当 switch_sa_way 为 `config` 时使用,且需要修改)
rclone_config_path = '/root/.config/rclone/rclone.conf'  # Rclone 配置文件位置
rclone_dest_name = 'GDrive'  # Rclone目的地名称(与cmd_rclone中对应相同,并保证SA均已添加)

# 本脚本临时文件
instance_lock_path = r'/tmp/autorclone.lock'
instance_config_path = r'/tmp/autorclone.conf'

# 本脚本运行日志
script_log_file = r'/tmp/autorclone.log'
logging_datefmt = "%m/%d/%Y %I:%M:%S %p"
logging_format = "%(asctime)s - %(levelname)s - %(threadName)s - %(funcName)s - %(message)s"

# ------------配置项结束------------------

脚本设置了多种规则来检查当前Rclone脚本是否超过750G限制。只有当所有启用的监测规则均命中时,脚本才会切换到下一个帐号。(所以不要过多的启用监测规则,以防止应切换时未能正常切换)

2019.10.12PM17 更新:

  1. 在本脚本运行项中添加last_pid参数以及依赖库psutil,使得脚本在运行时会首先尝试检查该pid信息,防止前一次运行过程中脚本意外退出,但是rclone进程未退出导致的孤儿进程情况。

配置完后就可以测试运行了,相关的运行结果会直接数出在stdout和配置的日志文件中。
除了在需要时在screen中手动调用之外,也可直接加入crontab中定时运行,脚本采用单例模式,所以不会导致过多rclone进程被创建。

0 */1 * * * /usr/bin/python3 /path/to/autorclone.py

其他

  1. remove.py提供了快速从Shared Drive中删除SA的方式,如果你已经不需要SA了,可以使用该文件进行删除。对应使用方法见下,其中ROLE的取值可为 ['owner', 'organizer', 'fileorganizer', 'writer', 'reader', 'commenter']中任一一个。使用脚本批量添加的ROLE值为 fileorganizer (即content manager) ,但更建议你使用--prefix (前缀) 和--suffix (后缀) 匹配SA邮箱的形式来删除,防止误伤。

    PS C:\Repositories\folderclone> python .\remove.py --help
    usage: remove.py [-h] [--token TOKEN] [--credentials CREDENTIALS]
                     (--prefix PREFIX | --suffix SUFFIX | --role ROLE) --drive-id
                     DRIVE_ID
    
    A tool to remove users from a Shared Drive.
    
    optional arguments:
      -h, --help            show this help message and exit
      --token TOKEN         Specify the pickle token file path.
      --credentials CREDENTIALS
                            Specify the credentials file path.
      --prefix PREFIX       Remove users that match a prefix.
      --suffix SUFFIX       Remove users that match a suffix.
      --role ROLE           Remove users based on permission roles.
    
    required arguments:
      --drive-id DRIVE_ID, -d DRIVE_ID
                            The ID of the Shared Drive.

非特殊说明,本博所有文章均为博主原创。

评论啦~



已有 27 条评论


  1. 西南学院学生代表
    西南学院学生代表

    大大好!根据您的教程,我操作到quick-setup这步卡住了,我已经设置了代理,但是仍然提示不能建立网络连接,请大大帮忙看看呗
    以下是操作记录:
    ——————————————————————
    Microsoft Windows [版本 10.0.18362.418]
    (c) 2019 Microsoft Corporation。保留所有权利。

    D:AutoRclone>curl http://members.3322.org/dyndns/getip
    120.230.. (本地移动IP)

    D:AutoRclone>set HTTP_PROXY=http://127.0.0.1:1080

    D:AutoRclone>curl http://members.3322.org/dyndns/getip
    149.129.. (香港IP)

    D:AutoRclone>python multifactory.py --quick-setup 1
    Traceback (most recent call last):
    File "C:Program Files (x86)Python38-32libsite-packagesurllib3connection.py", line 158, in _new_conn

    conn = connection.create_connection(

    File "C:Program Files (x86)Python38-32libsite-packagesurllib3utilconnection.py", line 80, in create_connection

    raise err

    File "C:Program Files (x86)Python38-32libsite-packagesurllib3utilconnection.py", line 70, in create_connection

    sock.connect(sa)

    TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "C:Program Files (x86)Python38-32libsite-packagesurllib3connectionpool.py", line 597, in urlopen

    httplib_response = self._make_request(conn, method, url,

    File "C:Program Files (x86)Python38-32libsite-packagesurllib3connectionpool.py", line 343, in _make_request

    self._validate_conn(conn)

    File "C:Program Files (x86)Python38-32libsite-packagesurllib3connectionpool.py", line 839, in _validate_conn

    conn.connect()

    File "C:Program Files (x86)Python38-32libsite-packagesurllib3connection.py", line 301, in connect

    conn = self._new_conn()

    File "C:Program Files (x86)Python38-32libsite-packagesurllib3connection.py", line 167, in _new_conn

    raise NewConnectionError(

    urllib3.exceptions.NewConnectionError: <urllib3.connection.VerifiedHTTPSConnection object at 0x044EACA0>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "C:Program Files (x86)Python38-32libsite-packagesrequestsadapters.py", line 439, in send

    resp = conn.urlopen(

    File "C:Program Files (x86)Python38-32libsite-packagesurllib3connectionpool.py", line 637, in urlopen

    retries = retries.increment(method, url, error=e, _pool=self,

    File "C:Program Files (x86)Python38-32libsite-packagesurllib3utilretry.py", line 399, in increment

    raise MaxRetryError(_pool, url, error or ResponseError(cause))

    urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Max retries exceeded with url: /token (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x044EACA0>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。'))

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "C:Program Files (x86)Python38-32libsite-packagesgoogleauthtransportrequests.py", line 118, in call

    response = self.session.request(

    File "C:Program Files (x86)Python38-32libsite-packagesrequestssessions.py", line 533, in request

    resp = self.send(prep, **send_kwargs)

    File "C:Program Files (x86)Python38-32libsite-packagesrequestssessions.py", line 646, in send

    r = adapter.send(request, **kwargs)

    File "C:Program Files (x86)Python38-32libsite-packagesrequestsadapters.py", line 516, in send

    raise ConnectionError(e, request=request)

    requests.exceptions.ConnectionError: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Max retries exceeded with url: /token (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x044EACA0>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。'))

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
    File "multifactory.py", line 315, in <module>

    resp = serviceaccountfactory(

    File "multifactory.py", line 185, in serviceaccountfactory

    creds.refresh(Request())

    File "C:Program Files (x86)Python38-32libsite-packagesgoogleoauth2credentials.py", line 134, in refresh

    _client.refresh_grant(

    File "C:Program Files (x86)Python38-32libsite-packagesgoogleoauth2_client.py", line 237, in refresh_grant

    response_data = _token_endpoint_request(request, token_uri, body)

    File "C:Program Files (x86)Python38-32libsite-packagesgoogleoauth2_client.py", line 105, in _token_endpoint_request

    response = request(

    File "C:Program Files (x86)Python38-32libsite-packagesgoogleauthtransportrequests.py", line 124, in call

    six.raise_from(new_exc, caught_exc)

    File "<string>", line 3, in raise_from
    google.auth.exceptions.TransportError: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Max retries exceeded with url: /token (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x044EACA0>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败 。'))

    回复 2019-10-28 16:04
    1. Rhilip
      Rhilip 博主

      请确认python也走了代理(在python中使用requests或者其他库进行测试),我个人比较建议使用路由器代理或者设置proxifier规则。

      回复 2019-10-28 16:19
      1. 西南学院学生代表
        西南学院学生代表

        通过proxifier成功,感谢感谢!

        回复 2019-10-28 17:11
        1. 唐

          这个怎么设置呢

          回复 2020-05-02 12:40
          1. Rhilip
            Rhilip 博主

            文章中已经很清楚了,本人没必要详细说明。

            2020-05-03 17:47
  2. 西南学院学生代表
    西南学院学生代表

    大大,我又遇到问题了!
    先说一下我的需求,我是想把我的一个googledrive的文件同步到另一个gd账户的shared drive中。
    我是先通过win10获得了json文件,然后把json文件放在centos7的VPS里面运行,现在发现autorclone.py无法通过5572获取状态信息,通过rclone直接运行命令,发现是rclone无法获取到源gd的信息,可能是因为应用了json,而json只授权了目的gd的shared drive造成,请问这个问题有什么解决方法吗?

    ——————————————————————
    下面是autorclone.py的运行记录:

    [root@centos7 ~]# python3 /root/folderrclone/autorclone.py
    10/29/2019 11:27:18 AM - DEBUG - MainThread - acquire - Attempting to acquire lock 140168346510616 on /tmp/autorclone.lock
    10/29/2019 11:27:18 AM - INFO - MainThread - acquire - Lock 140168346510616 acquired on /tmp/autorclone.lock
    10/29/2019 11:27:18 AM - INFO - MainThread - <module> - Instance config exist, Load it...
    10/29/2019 11:27:18 AM - DEBUG - MainThread - <module> - Last PID exist, Start to check if it is still alive
    10/29/2019 11:27:18 AM - INFO - MainThread - <module> - Get last_sa from config, resort list sa_jsons
    10/29/2019 11:27:18 AM - WARNING - MainThread - <module> - Lost important param --rc in rclone commands, AutoAdd it.
    10/29/2019 11:27:18 AM - INFO - MainThread - <module> - Switch to next SA..........
    10/29/2019 11:27:18 AM - INFO - MainThread - <module> - Get SA information, file: /root/folderrclone/accounts/03393a7235cd990b1d42d12xx91c43e729c3ffe6.json , email: [email protected]
    10/29/2019 11:27:18 AM - INFO - MainThread - <module> - Wait 60 seconds to full call rclone command: rclone copy gdco:Medias td:Medias -v --log-file /tmp/rclone.log --rc --drive-service-account-file /root/folderrclone/accounts/03393a7235cd990b1d42d12xx91c43e729c3ffe6.json
    10/29/2019 11:28:18 AM - INFO - MainThread - <module> - Run Rclone command Success in pid 16204
    2019/10/29 11:28:18 Failed to rc: connection failed: Post http://localhost:5572/core/stats: dial tcp [::1]:5572: connect: connection refused
    10/29/2019 11:28:18 AM - WARNING - MainThread - <module> - check core/stats failed for 1 times, Wait 10 seconds to recheck.
    2019/10/29 11:28:28 Failed to rc: connection failed: Post http://localhost:5572/core/stats: dial tcp [::1]:5572: connect: connection refused
    10/29/2019 11:28:28 AM - WARNING - MainThread - <module> - check core/stats failed for 2 times, Wait 10 seconds to recheck.
    2019/10/29 11:28:38 Failed to rc: connection failed: Post http://localhost:5572/core/stats: dial tcp [::1]:5572: connect: connection refused
    10/29/2019 11:28:38 AM - WARNING - MainThread - <module> - check core/stats failed for 3 times, Wait 10 seconds to recheck.
    2019/10/29 11:28:48 Failed to rc: connection failed: Post http://localhost:5572/core/stats: dial tcp [::1]:5572: connect: connection refused
    10/29/2019 11:28:48 AM - ERROR - MainThread - <module> - check core/stats failed for 4 times, Force kill exist rclone process 16203.
    10/29/2019 11:28:48 AM - DEBUG - MainThread - release - Attempting to release lock 140168346510616 on /tmp/autorclone.lock
    10/29/2019 11:28:48 AM - INFO - MainThread - release - Lock 140168346510616 released on /tmp/autorclone.lock

    回复 2019-10-29 11:41
    1. Rhilip
      Rhilip 博主

      把你的googledrive文件夹变成shared folder,把SA批量添加到共享对象中(可以参考他人的folderclone教程

      回复 2019-10-31 19:42
      1. EpicLPer
        EpicLPer

        Heya! So far the script works fine and uploads all files to a "/tmp" folder on my Team Drive. However I also get the same errors as the guy above with "connection refused". The files are still on the Drive already tho, so not much of an issue, just have to manually move them by hand :)

        回复 2020-07-11 19:52
  3. 集锌
    集锌

    大大您好,我想请问下,我已经通过您和xyou365的教程成功的把服务账户添加到团队盘。但是当我运行autorclone.py文件进行move时提示
    11/25/2019 09:07:00 PM - INFO - <module> - Run Rclone command Success in pid 14026
    2019/11/25 21:07:00 Failed to rc: connection failed: Post http://localhost:5572/core/stats: dial tcp 127.0.0.1:5572: connect: connection refused
    11/25/2019 09:07:00 PM - WARNING - <module> - check core/stats failed for 1 times, Wait 10 seconds to recheck.
    2019/11/25 21:07:10 Failed to rc: connection failed: Post http://localhost:5572/core/stats: dial tcp 127.0.0.1:5572: connect: connection refused
    11/25/2019 09:07:10 PM - WARNING - <module> - check core/stats failed for 2 times, Wait 10 seconds to recheck.
    2019/11/25 21:07:20 Failed to rc: connection failed: Post http://localhost:5572/core/stats: dial tcp 127.0.0.1:5572: connect: connection refused
    11/25/2019 09:07:20 PM - WARNING - <module> - check core/stats failed for 3 times, Wait 10 seconds to recheck.
    2019/11/25 21:07:30 Failed to rc: connection failed: Post http://localhost:5572/core/stats: dial tcp 127.0.0.1:5572: connect: connection refused
    11/25/2019 09:07:30 PM - ERROR - <module> - check core/stats failed for 4 times, Force kill exist rclone process 14025.
    11/25/2019 09:07:30 PM - DEBUG - release - Attempting to release lock 139893017446272 on /tmp/autorclone.lock
    11/25/2019 09:07:30 PM - INFO - release - Lock 139893017446272 released on /tmp/autorclone.lock
    通过,命令行运行rclone move没有问题,望解答,谢谢!
    注:所有操作在国外vps上进行,第一次设置完成后运行autorclone.py可以复制,之后重新设置才出现的这个问题。

    回复 2019-11-25 21:12
    1. Rhilip
      Rhilip 博主

      rclone进程没起来,请检查rclone的日志。

      回复 2019-11-27 20:14
      1. 集锌
        集锌

        您好,今天我查看了一下,运行autorclone.py文件同样还是这样报错,但是文件却已经上传成功,本地目录未删除,rclone.log日志文件显示:

        2019/11/27 21:39:29 NOTICE: Serving remote control on http://127.0.0.1:5572/
        2019/11/27 21:39:31 INFO : Google drive root 'Unprocessed': Waiting for checks to finish
        2019/11/27 21:39:31 INFO : Google drive root 'Unprocessed': Waiting for transfers to finish
        2019/11/27 21:39:35 INFO : css/123: Copied (new)
        2019/11/27 21:39:35 INFO : css/123: Deleted
        2019/11/27 21:39:35 INFO : 132: Copied (new)
        2019/11/27 21:39:35 INFO : 132: Deleted
        2019/11/27 21:39:35 INFO : 123.aria2: Copied (new)
        2019/11/27 21:39:35 INFO : 123.aria2: Deleted
        2019/11/27 21:39:35 INFO :
        Transferred: 0 / 0 Bytes, -, 0 Bytes/s, ETA -
        Errors: 0
        Checks: 6 / 6, 100%
        Transferred: 3 / 3, 100%
        Elapsed time: 4.3s
        另外我参照rclone官方文档加了句--exclude-from exclude-file.txt来排除指定后缀的文件,这样运行文件却又没有上传。
        实在抱歉打扰您,望解惑

        回复 2019-11-27 21:55
        1. Rhilip
          Rhilip 博主

          建议你再看看rclone move的说明,默认不删文件夹。另外你文件数量没过750G,用autorclone干嘛?
          Elapsed time: 4.3s 所以出现之前log中rclone没起来的假象。

          回复 2019-12-01 10:21
  4. V
    V

    如果 Google Drive 所在账号和谷歌云账号不一样呢?是否可以在共享盘添加谷歌云的谷歌账号为管理员,然后进行这种操作呢?

    回复 2020-02-18 17:08
  5. oweafff
    oweafff

    大哥,不支持无头服务器,怎么填key

    回复 2020-03-27 18:58
    1. Rhilip
      Rhilip 博主

      本地生成accounts文件夹上传到服务器上。

      回复 2020-03-28 11:14
  6. oldzhg
    oldzhg

    博主你好,我测试rclone都有两个网盘的读取权限,但是还是出现问题。
    autorclone.conf 配置 : http://pic.oldzhg.com/uPic/Xnip2020-04-06_11-36-06.jpg
    执行时的错误日志: http://pic.oldzhg.com/uPic/Xnip2020-04-06_11-35-38.jpg
    rclone的日志: http://pic.oldzhg.com/uPic/Xnip2020-04-06_11-35-50.jpg
    从日志上看说是找不到目录,但是我尝试rclone可以读取到该共享网盘目录: http://pic.oldzhg.com/uPic/WGWRVZ.png
    不知道问题出在什么地方,烦请博主有时间看一看。

    回复 2020-04-06 11:42
    1. Rhilip
      Rhilip 博主

      本项目初始写的时候主要目的是本地到GD/TD,没有对GD/TD互转做很多测试,因为我个人更建议使用folderclone,或使用gclone做进一步尝试。
      如果你尝试使用本项目进行互转,请考虑将切换模式改为config而不是runtime,再做测试。(因为单账号下载配额较高,但上传配额只有750G,所以从单账号下载,多账号上传是比较好的实现。而runtime对两个盘符均使用一个SA帐号)

      回复 2020-04-06 17:19
      1. 灵学家
        灵学家

        请问一下这个命令在windows中该怎么修改
        cmd_rclone = 'rclone move /home/tomove GDrive:/tmp --drive-server-side-across-configs -v --log-file /tmp/rclone.log'

        回复 2020-04-23 21:09
  7. EpicLPer
    EpicLPer

    Heya! Just tried this out but sadly I only get a "Fatal error: unknown flag: --drive-server-side-across-configs" back. How can I fix this? :)

    回复 2020-07-11 19:34
    1. EpicLPer
      EpicLPer

      Fixed! If you're on Ubuntu DON'T USE THE "apt install" VERSION OF RCLONE! It won't work! The version uploaded there is v1.36 which does not support the flags needed, rather use the one you can get from the official rclone website and use their installation script.

      回复 2020-07-11 19:45
  8. noncapture
    noncapture

    Hello....
    Hello , Sorry for my English skill
    When i use autorclone , its create hundred of service accounts(SA) on my shared drive..
    Problem is i don't know how to remove SA...
    i already delete service accounts using "python3 gen_sa_accounts.py --delete-sas NAME"
    But, hundred of SA are remain in my shared drive..
    Please help me

    回复 2020-11-01 23:11
    1. Rhilip
      Rhilip 博主

      python3 remove.py -h
      And you can use this script to remove SA from your shared drive by prefix, suffix or role

      回复 2020-11-04 10:10
  9. xpp
    xpp

    博主,您好,感谢您的分享,已成功设置,唯一问题是,请问如果要同时对两个文件夹进行操作,应怎么设置,就是要把不在同一个目录下的两个文件夹的内容上传到云盘里。

    回复 2020-12-27 13:17
    1. Rhilip
      Rhilip 博主

      那是rclone要解决的问题,请见rclone的文档。本处只是解决你单日上传750G限制。

      回复 2020-12-27 15:44
  10. rfsf
    rfsf

    直接用rclone运行cmd_rclone里的命令没事,用autorclone转一会就会出现error googleapi: Error 403: User rate limit exceeded., userRateLimitExceeded,市哪里设置的问题吗?

    回复 2021-01-09 10:49
    1. Rhilip
      Rhilip 博主

      还是建议换成 mawaya/rclone (即fclone)或gclone。
      AutoRclone是这些工具还没出来之前的一种尝试,有新的更好用的工具还是换了吧,而且也不维护了。

      回复 2021-01-09 13:44
  11. Zynismus16
    Zynismus16

    大大你好,我想咨询一下。
    教程中所述的你自己使用的方法,也就是rclone move/copy/sync,这种方式如果750g限制达到了可以触发自动换号吗,还是说它并不会触发自动换号使用的还是rclone配置时选择的登入账户。
    另外使用autorclone.py脚本时可以对运行空置时间做修改吗,Td考Td有问题吗

    回复 2021-01-20 22:46