更新新版folderclone使用方法
详情https://github.com/Spazzlo/folderclone
[可选]加入Google Drive团队盘
没有Google Drive团队盘的小伙伴可以自助添加
- 英国谢菲尔德大学:https://gdrive.zppcw.cn/
- 404 NOT FOUND:https://gd.404edu.workers.dev/
- https://gd.zxd.workers.dev/
- http://leon.educationhost.cloud/
- swccd.edu团队盘:https://teamdrive.xcpx.workers.dev/
- 洛杉矶加利福尼亚大学团队盘:https://ucla.ur.workers.dev/
- 日本国際大学团队盘:https://iuj.ur.workers.dev/
- 自动创建:https://www.teamdrive.workers.dev
感谢大佬提供的Google Drive团队盘
===新版folderclone教程开始===
第一步 安装folderclone
Linux
Debian/Ubuntu安装
apt update
apt install python3-pip git screen -y
git clone https://github.com/Spazzlo/folderclone.git
cd folderclone
pip3 install folderclone
|
CentOS
把apt-get
替换成yum
因拷贝时间长,防止中断,强烈建议使用screen
后台运行。screen
简单使用方法
# 创建screen窗口,folderclone名字可自定义
screen -S folderclone
# 临时退出使用screen后台运行,按组合键
【Ctrl】【a】【d】
# 回到screen窗口
screen -r folderclone
|
Windows安装
下载Python安装
Python 3.7.4 64-bit 、 Python 3.8.1
下载folderclone源码并解压,比如我的放置在E:\folderclone-master
以管理员身份运行 cmd
或Windows PowerShell
执行,且确保本地cmd或Windows PowerShell稳定的外网环境。
# 进入folderclone解压根目录
cd E:\folderclone-master
pip install folderclone
|
第二步 开启Drive API服务
打开登陆Python Quickstart 点击Enable the Drive API
然后DOWNLOAD CLIENT CONFIGUIRATION
会下载一个credentials.json
的文件,把credentials.json
放置上传到folderclone解压根目录,如下图所示
在终端上,将目录更改为您刚才创建并运行的folderclone文件夹:
multimanager interactive
|
这将以交互模式启动多管理器。首先,将您带到登录页面进行身份验证。然后会提示您启用服务使用API。访问它提供的链接,启用API,然后返回并按Enter键重试。不必担心每次都要这样做,这是一次设置。
然后会自动弹窗打开浏览器选择账号
登陆
【高级】
【转至Quickstart(不安全)】【允许】Quickstart
直到浏览器提示The authentication flow has completed. You may close this window.
按提示复制里面的3
个URL链接到浏览器中打开
启用API 和服务【Service Usage API】、【Cloud Resource Manager API】、【Cloud Resource Manager API】
完成后按Enter
回车键,将出现Multi Manager提示。
1
2
|
Multi Manager
mm>
|
您已成功设置Multi Manager!
第三步 创建SA机器人、添加成员到团队盘
对于folderclone,您需要准备几个服务帐户(service accounts)。为此,请运行:
mm> quick-setup N SHARED_DRIVE_ID
|
N
您要使用的项目数量以及SHARED_DRIVE_ID
要复制到的共享驱动器的ID 在哪里。
例如,假设我想复制100 TB的内容。我需要134个SA(每个750 GB)来进行复制,因此需要2个项目。我将复制到ID为0ABCdeyz_ZaMsxxxLGA
的全新共享驱动器。我将运行:
mm> quick-setup 2 0ABCdeyz_ZaMsxxxLGA
|
这将自动;
- 创建2个项目
- 启用所需的服务
- 创建服务帐户
- 将它们添加到共享驱动器
- 并将其凭据下载到新文件夹中
accounts
mm> quick-setup 2 0AKqujK7R10w9Uk9PVA
Creating 2 projects.
Enabling services.
Creating Service Accounts in mm-q1n5s5q0tenwkm6i-844bj5-43n
Creating Service Account keys in mm-q1n5s5q0tenwkm6i-844bj5-43n
Creating Service Accounts in mm-bj81pc594lhe8z4rr1jkk0871k5
Creating Service Account keys in mm-bj81pc594lhe8z4rr1jkk0871k5
Fetching emails.
Adding 200 users #按回车键
Done.
mm>
|
批量提取service accounts邮箱 放置在accounts目录下
现在您可以进行下一步了。
第四步 使用foldeclone拷贝文件(夹)
multifoldeclone是可以为您完成所有克隆的工具。这是最简单的使用方法。
multifolderclone -s SOURCE_FOLDER_ID -d DESTINATION_FOLDER_ID
|
凡SOURCE_FOLDER_ID
(通过使该文件夹的公共或共享与服务使用的是具有复制账户文件夹确保源文件夹的服务帐户访问)是你要复制的文件夹的ID,并且DESTINATION_FOLDER_ID
是您要复制到的文件夹的ID。这可以是共享驱动器的ID,也可以是共享驱动器中的文件夹。
这将自动开始克隆文件夹!就是这样!你做到了!
===新版folderclone教程结束===
关于Folderclone
Folderclone,增加了服务帐户的TD成员和上载数据TB的,在使用某种算法每个服务帐户(750GB /天)的载配额。 基本上我们可以通过一个项目在TD中添加100个服务帐户。因此,每天可以复制的最大数据是每个项目最大750GB * 100 = 75TB(每天)。
首先计算您每天要复制的数据大小,取决于创建的项目数量。每个项目最多可以创建100个服务帐户。所以每个项目的复制容量是75tb。复制需要至少2个项目。
本教程中TD = Team drive和GD = Gdrive文件夹
详情请查看
https://github.com/Spazzlo/folderclone
https://github.com/SameerkumarP/Multifolderclone
https://blackpearl.biz/threads/7408/
https://blackpearl.biz/threads/7892/
新建项目
在Google云端控制台上设置2个项目转到此处 在【Google Cloud Platform】 【服务条款】中勾选【同意并继续】
我们必须创建2个新项目,项目名称随便,例如我的项目名称是“foldercloneA”和“foldercloneB”。
新建项目foldercloneA
在Google云端控制台 【选择项目】【新建项目】
在【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
比如我这里的是foldercloneb-253302
安装Python并配置依赖环境
使用64-bit的Windows
下载Python并安装
- 下载Python 3.7.4 64-bit 并按如下图所示安装
安装依赖环境
在C:\Program Files\Python37目录中按【Shift+鼠标右键】
打开CMD安装以下依赖环境
1
2
3
4
5
6
|
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
项目地址https://github.com/Spazzlo/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=1WyhcL9GbMQbtlhrmEGVSIGAltE_G5bRA
id=1WyhcL9GbMQbtlhrmEGVSIGAltE_G5bRA
如果是别人分享的链接,先右击选择添加到我的云端硬盘
查看【共享云端硬盘】的ID
进入folderclone文件夹目录
在CMD窗口执行
python multifolderclone.py -s 源文件ID -d TD-ID
|
例如
python multifolderclone.py -s 1WyhcL9GbMQbtlhrmEGVSIGAltE_G5bRA -d 0ANSyUOxsS0C7Uk9PVA
|
【共享云端硬盘】文件转移到【我的云端硬盘】
借助【共享云端硬盘】作为文件中转站,我们可以将【共享云端硬盘】里面的文件或文件夹【移至】其它【共享云端硬盘】或者【我的云端硬盘】
文件所有者会变成我移动者且会占用空间大小
注意只能移至 相当于剪切 并不能复制
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,有时间延迟,最好适量等侍一会,否则会出现很多空文件夹或者丢失文件太离谱,我一般会隔一天再操作。
- 使用sstap全局富强上网。
原文地址:https://567899.xyz/post/google_drive_folderclone/