乱写的博客

生命不息,折腾不止

主要功能:google云端硬盘内个人文件夹/团队云盘文件夹对拷

  • Folderclone

    • Folderclone,增加了服务帐户的TD成员和上载数据TB的,在使用某种算法每个服务帐户(750GB /天)的载配额。
    • 基本上我们可以通过一个项目在TD中添加100个服务帐户。因此,每天可以复制的最大数据是每个项目最大750GB *
      100=75TB(每天)。
  • 首先计算您每天要复制的数据大小,取决于创建的项目数量。每个项目最多可以创建100个服务帐户。所以每个项目的复制容量是75tb。复制需要至少2个项目。本教程中TD
    = Team drive和GD = Gdrive文件夹

> 首先我们需要能全局系统(特别是powershell)能够正常访问谷歌服务项目的机子 如阿里云的港美日win服务器等,本地使用游戏加速器类全局可能会无法执行后面的操作

新建项目

  • 在Google云端控制台上设置2个项目转到此处 在【Google Cloud Platform】 【服务条款】中勾选【同意并继续】
    1
  • 我们必须创建2个新项目,项目名称随便,例如我的项目名称是“foldercloneA”和“foldercloneB”。

新建项目foldercloneA

  • 在Google云端控制台 【选择项目】【新建项目】
    2

请输入图片描述

  • 在【API和服务】【库】里面搜索【Google Drive API】和【Identity and Access Management (IAM) API】并启用它们。
    请输入图片描述

请输入图片描述

请输入图片描述

  • 【导航菜单】【IAM和管理】【IAM】
    请输入图片描述
  • 【服务账号】【创建服务账号】
    请输入图片描述
  • 【服务帐号详情】【服务帐号名称】随便填 比如我填写的是
    请输入图片描述
  • 【服务帐号权限(可选)】【请选择一个角色】【Project】【所有者】
    请输入图片描述
  • 【+添加其它角色】
    请输入图片描述
  • 【请选择一个角色】【Service Accounts】【Service Account Admin 】
    请输入图片描述
  • 2个角色【Project-所有者】和【Service Account Admin 】【继续】
    请输入图片描述
  • 【创建密钥】【密钥类型】选择默认的【JSON】【创建】
    请输入图片描述
  • 私钥已保存到您的计算机 folderclonea-253301-XXXXXXf.json 可用来访问您的云端资源,请妥善保存。
    请输入图片描述
  • 打开刚才创建下载的文件folderclonea-253301-XXXXXXf.json找到client_email把里面生成的邮箱记下来
    请输入图片描述
  • 比如我的是【folderclone@folderclonea-253301.iam.gserviceaccount.com】

新建项目foldercloneB

  • 在Google云端控制台【创建项目】【foldercloneB】【选择项目】并切换到项目foldercloneB
  • 添加API【Google Drive API】和【Identity and Access Management (IAM) API】并启用它们。方法跟新建项目foldercloneA一样
  • 【导航菜单】【IAM和管理】【IAM】【添加】项目foldercloneA文件folderclonea-253301-XXXXXXf.json里的邮箱地址
    请输入图片描述

请输入图片描述

请输入图片描述

并记录保存好foldercloneB_ID

https://baklibcdn2.dagle.cn/73219c1c-641e-49b9-979b-b757f540a0d7/foldercloneB_ID1580728496149.png

  • 比如我这里的是foldercloneb-253302

安装Python并配置依赖环境

  • 使用64-bit的Windows

下载Python并安装

  • 下载Python 3.7.4 64-bit 并按如下图所示安装
    请输入图片描述

请输入图片描述

请输入图片描述

安装依赖环境

  • 在C:Program FilesPython37目录中按【Shift+鼠标右键】
    请输入图片描述

打开CMD安装以下依赖环境

python -m pip install --upgrade pip
pip install oauth2client
pip install google-api-python-client
pip install progress
pip install progressbar2
pip install  httplib2shim

设置folderclone

设置folderclone文件

  • 设置folderclone文件
    本站下载Multifolderclone-master.zip 或者克隆下载folderclone到本地 解压 移动文件夹到您想要的地方

    • 在该目录下新建文件夹名为CONTROLLER
      请输入图片描述
  • 把项目foldercloneA文件folderclonea-253301-XXXXXXf.json复制到文件夹CONTROLLER目录下
    请输入图片描述

生成并创建folderclone用户及配置文件

  • 进入folderclone文件夹目录
    请输入图片描述

运行以下命令

python serviceaccountfactory.py

然后手动输入foldercloneB_ID空格加数字100回车,回车

输入生成的自定义邮箱前缀,比如我用的是users

比如我这里的是foldercloneb-253302 100
请输入图片描述

等待完成后会生成文件夹accounts里面会看到1到199的用户配置文件
请输入图片描述

请输入图片描述

这时我们可以压缩保存整个文件夹了。

共享云端硬盘添加成员

  • 查看【共享云端硬盘】的ID
    请输入图片描述
  • 进入【共享云端硬盘】添加新成员项目folderclone-253301-XXXXXXf.json找到client_email里面的邮箱为管理员
    请输入图片描述
  • 进入folderclone文件夹目录
    请输入图片描述

执行python masshare.py -d YYYYYY 其中YYYYYY替换成【共享云端硬盘】的ID

python masshare.py -d YYYYYY

请输入图片描述

请输入图片描述

拷贝文件到共享云端硬盘

先获取共享链接,且设置成知道此链接的任何人都可以查看
请输入图片描述

例如分享链接https://drive.google.com/open?id=test123321daowjpoawfawf

请输入图片描述

那么 id=test123321daowjpoawfawf

如果是别人分享的链接,先右击选择添加到我的云端硬盘
请输入图片描述

查看【共享云端硬盘】的ID
请输入图片描述

进入folderclone文件夹目录
请输入图片描述

在CMD窗口执行

python multifolderclone.py -s 源文件ID -d TD-ID

例如

python multifolderclone.py -s 2ryhcL9GbMQbtlhrmEGVSIGAltE_G5bRA -d 0ANSyUOxsasc0C7Uk9PVA

【共享云端硬盘】文件转移到【我的云端硬盘】

借助【共享云端硬盘】作为文件中转站,我们可以将【共享云端硬盘】里面的文件或文件夹【移至】其它【共享云端硬盘】或者【我的云端硬盘】
请输入图片描述

请输入图片描述

文件所有者会变成我移动者且会占用空间大小
请输入图片描述

GD目标文件夹的准备

比如我想要在【我的云端硬盘】里的某个文件夹里面复制转存文件,具体操作如下
安装扩展程序Email Extractor
下载Chrome 浏览器,然后安装扩展程序Email Extractor
请输入图片描述

请输入图片描述

获取源【共享云端硬盘】成员邮箱

切换到目标【共享云端硬盘】然后点击扩展程序【Email Extractor】【Copy all】复制【共享云端硬盘】所有成员的邮箱。
请输入图片描述

创建共享目录文件夹添加成员

请输入图片描述

在【共享对象】里面用【Ctrl+V】粘贴刚才复制的成员邮箱
请输入图片描述

请输入图片描述

现在您的GD目标文件夹已准备就绪。

GD到GD文件传输

必须先完成上面的GD目标文件夹的准备,然后使用以下代码

python multifolderclone.py -s ZZZZZZ -d DDDDDD

用源文件夹ID替换ZZZZZZ。 并将DDDDDD替换为目标文件夹(您刚设置的文件夹)

必须将共享文件夹添加到驱动器中
源文件夹的公共链接必须处于活动状态,否则服务帐户无法访问源文件夹数据。

TD到GD文件传输

必须先完成上面的GD目标文件夹的准备,然后使用以下代码

python multifolderclone.py -s ZZZZZZ -d DDDDDD

用TD中的源文件夹ID替换ZZZZZZ, 用目标文件夹替换DDDDDD(您刚设置的文件夹)

目标GD所在的帐户present必须是您正在传输文件的TD的管理员。
应在TD和GD中使用相同的服务帐户。

TD到TD文件传输
现在我们要对2个TD进行处理。一个是源TD,一个是目的地TD。

在根据我的原始帖子设置folderclone时,您必须使用这两个不同的TD ID运行masshare.py两次。

python masshare.py -d 源TDid
python masshare.py -d 目的地TDid

之后,为了在TD到TD之间传输数据,请使用以下代码

python multifolderclone.py -s ZZZZZZ -d DDDDDD

将ZZZZZZ替换为源TD中的源文件夹ID
将DDDDDD替换为目标TD中的目标文件夹。

要记住的事项

必须将相同的服务帐户添加到两个TD。
您将使用的源文件夹,必须生成公共链接。
在所有情况下,必须将源共享文件夹添加到驱动器中


注意事项

  • folderclone在拷贝文件夹数目多的时候不全会丢文件,文件夹较少就不会,比如就在那么几个文件夹,哪怕每个文件夹目录下有成千上万个文件也没事
  • 运行CMD窗口不要太多,最好最多就俩个吧,多了会大概率丢文件
  • 速度比【Copy, URL to Google Drive】快
  • Folderclone丢失文件,拷贝不全不完整怎么办?删除重来或者用rclone copy校验补全
    文件刚分享或者刚移动文件(夹)不久,不要立刻使用folderclone,有时间延迟,最好适量等侍一会,否则会出现很多空文件夹或者丢失文件太离谱,我一般会隔一天再操作。
  • 使用可流畅访问对应项目的服务器来执行操作。

本文引至567899.xyz 以实际使用做修改

仅有一条评论

发表评论

文章归档

其它功能