Cómo crear cuentas de servicio Google y usar la herramienta Folderclone para copiar de Drive a Drive más de 750 GB, hasta 75Tb de una forma rapida ya que no usa ancho de banda, por lo regular dura minutos, Usaremos phyton, gdrive, G cloud console, folderclone version 0.5.5 ya que la 1.0.2 no funciona, para ello seguimos los siguientes pasos, al final el video con el proceso.
- 1 Crear nuevo proyecto Google cloud console
- 2 Habilitaremos la API de Google Drive
- 3 Habilitar Pantalla de consentimiento de OAuth
- 4 Crear credenciales a la aplicacion
- 5 Guardar credenciales en formato json
- 6 Descargar repositorio y descomprimir
- 7 Instalar Python en la pc
- 8 Iniciar CMD e ir a la ubicación de la carpeta DRIVETODRIVE.
- 9 Ejecutar el archivo «requirements.txt» instala dependencias phyton.
- 10 Crear 100 cuentas de servicio a G Cloud console
- 11 Mostrar las cuentas de servicio
- 12 Crear grupo y añadir todos las cuentas de servicio creadas.
- 13 Instalar Folderclone con pip version 0.5.5
- 14 Configurar Multimanager
- 15 Copiar de Drive a Drive
Crear nuevo proyecto Google cloud console
Nos dirigimos a Google Cloud Console y creamos un proyecto nuevo.
Habilitaremos la API de Google Drive
En el panel izquierdo seleccionamos biblioteca para ingresar a la libreria de APis,en el buscador ponemos “Drive” y la habilitamos, tambien “Service Usage API” y “dentity and Access Management”
Habilitar Pantalla de consentimiento de OAuth
Una vez habilitada la API, debemos entrar en OAuth Consent Screen y en tipo de uso, marcar la opción “Externos” y pulsar sobre crear. Rellenamos los campos requeridos, que básicamente es un nombre de proyecto y un e-mail, publicamos y validamos.
Crear credenciales a la aplicacion
Entramos en el apartado “Credenciales” y creamos unas nuevas. Para ello, hacemos clic en “Crear credenciales”, luego a “ID de cliente de OAuth” y en tipo de aplicación, seleccionamos “App de escritorio”.
Guardar credenciales en formato json
Ahora simplemente debemos hacer clic en el botón de descargar y guardar el archivo .json con el nombre “credentials” por lo que quedara como credentials.json.
Descargar repositorio y descomprimir
- Descargamos el siguiente repositorio
- Lo descomprimimos la renombramos a DRIVETODRIVE y dentro de el colocamos credentials.json
- Podemos moverla a la raiz del sistema en la unidad C:/
Instalar Python en la pc
Descargamos e instalamos Python en la pc, usamos la instalacion recomendada.
Iniciar CMD e ir a la ubicación de la carpeta DRIVETODRIVE.
Abrimos la CMD con permisos de administrador y nos dirigimos a la ubicación de la carpeta que creamos en la raíz de la unidad. Para ello, introducimos el siguiente comando:
(nombre de la carpeta creada sin las comillas).
cd C:\DRIVETODRIVE
Ejecutar el archivo «requirements.txt» instala dependencias phyton.
Introducimos el siguiente comando para ejecutar el archivo requirements.txt
pip3 install -r requirements.txt
pip install --upgrade google-api-python-client
Crear 100 cuentas de servicio a G Cloud console
Se crearan 100 cuentas de servicio y se enviaran al proyecto creado en google cloud console para ello ahora introducimos el siguiente comando:
py gentoken.py
- Vamos al link generado,aceptamos los permisos y copiamos el codigo generado, lo pegamos en la consola y damos enter.
- Despues el siguiente codigo a la consola y damos enter, listaremos nuestros proyectos poara ver el ultimo ID del proyecto creado
py gen.py --list-projects
- Crear SaS cuentas de servicio para el proyecto creado (copiamos su ID)
py gen.py --create-sas ID-del-proyecto
- Descargamos las cuentas ala carpeta accounts
py gen.py --download-keys ID-del-proyecto
Mostrar las cuentas de servicio
Con el siguiente codigo se nos mostraran las cuentas de servicio en grupos de 10 para poder realizar el paso siguiente.
cd accounts
py emails.py
Crear grupo y añadir todos las cuentas de servicio creadas.
Entramos en Google Groups y creamos un grupo nuevo. En las opciones: “Quién puede ver las conversaciones”, “Quién puede publicar” y “Quién puede ver miembros”, indicamos la opción “Propietarios del grupo”, copiamos el correo del grupo creado, ejemplo [email protected]
Por último, entramos en el apartado miembros, añadir miembros y pegamos todos los correos, si no te acepta agregar todos, tendras que seccionarlos de 10 en 10.
Instalar Folderclone con pip version 0.5.5
Ahora nos dirigimos a la CMD e introducimos los siguientes comandos por separado: uno es para entrar a la carpeta y el otro para instalar folderclone
cd C:\DRIVETODRIVE
pip install folderclone-0.5.5.tar.gz
Configurar Multimanager
Por último, nos falta configurar Multimanager introduciendo este comando y dándole los permisos requeridos en el cmd.
multimanager interactive
Veremos que en la CMD nos aparece lo siguiente:
Multi Manager mm>
Ahí debemos escribit «exit» y salir.
Copiar de Drive a Drive
Añadimos el correo de grupo creado @googlegroups.com a los dos Drive
Abrimos la CMD y nos dirigimos a la ubicación de la carpeta creada:
cd C:\DRIVETODRIVE
copiamos los ID de los drive, el del origen y el del destino.
Escribimos el siguiente comando en la cmd:
multifolderclone -s IDORIGEN -d IDDESTINO
y listo, empezara a sincronizar las carpetas, si te llega a aparecer el error siguiente:
'bool' object is not subscriptable
Traceback (most recent call last):
TypeError: 'bool' object is not subscriptable
Vuelve a repetir el punto , para que lo vuelva a iniciar y asi sucesivamente por lo regular te lo lanzara una 3 veces, y seguira copiando, las copias son rapidas,cuestion de unos minutos para copiar teras de drive a drive, es la mejor solucion hasta el momento que he encontrado en la red.
Me marca error:
module ‘collections’ has no attribute ‘Callable’
Traceback (most recent call last):
File «/data/data/com.termux/files/usr/bin/multifolderclone», line 33, in sys.exit(load_entry_point(‘folderclone==0.5.5’, ‘console_scripts’, ‘multifolderclone’)()) File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/folderclonecli/mfcparse.py», line 37, in main
raise e File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/folderclonecli/mfcparse.py», line 31, in main mfc.clone()
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/folderclone/multifolderclone.py», line 319, in clone
check = build(‘drive’,’v3′,credentials=Credentials.from_service_account_file(accounts[0]))
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/googleapiclient/_helpers.py», line 131, in positional_wrapper return wrapped(*args, **kwargs)
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/googleapiclient/discovery.py», line 272, in build
discovery_http = build_http()
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/googleapiclient/http.py», line 1947, in build_http
http = httplib2.Http(timeout=http_timeout)
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/httplib2shim/__init__.py», line 117, in __init__ pool = self._make_pool(proxy_info=proxy_info)
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/httplib2shim/__init__.py», line 45, in _default_make_pool
if isinstance(proxy_info, collections.Callable):
AttributeError: module ‘collections’ has no attribute ‘Callable’ $ multifolderclone -s 0AFYH6jhWHwEnUk9PVA -d 0AAonklz_uEByUk9PVA
module ‘collections’ has no attribute ‘Callable’
Traceback (most recent call last):
File «/data/data/com.termux/files/usr/bin/multifolderclone», line 33, in
sys.exit(load_entry_point(‘folderclone==0.5.5’, ‘console_scripts’, ‘multifolderclone’)()) File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/folderclonecli/mfcparse.py», line 37, in main
raise e
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/folderclonecli/mfcparse.py», line 31, in main mfc.clone()
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/folderclone/multifolderclone.py», line 319, in clone
check = build(‘drive’,’v3′,credentials=Credentials.from_service_account_file(accounts[0]))
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/googleapiclient/_helpers.py», line 131, in positional_wrapper
return wrapped(*args, **kwargs)
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/googleapiclient/discovery.py», line 272, in build discovery_http = build_http()
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/googleapiclient/http.py», line 1947, in build_http http = httplib2.Http(timeout=http_timeout)
File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/httplib2shim/__init__.py», line 117, in __init__ pool = self._make_pool(proxy_info=proxy_info) File «/data/data/com.termux/files/usr/lib/python3.10/site-packages/httplib2shim/__init__.py», line 45, in _default_make_pool
if isinstance(proxy_info, collections.Callable):
AttributeError: module ‘collections’ has no attribute ‘Callable’
Lo checare amigo, cuando hize el tutorial me salio bien, lo volvere a checar gracias
Mismo error que el compañero
buenas amigo, a mi me salta este error
Good afternoon everyone, I am testing this wonderful application but when it takes about two minutes, I get an error that cannot be resolved, I have installed different versions of python, of folderclone and it remains the same, can someone help me?
This is the error:
Out of SAs.
Traceback (most recent call last):
File «C: \ Users \ eNuc \ AppData \ Local \ Programs \ Python \ Python39 \ Scripts \ multifolderclone-script.py», line 33, in
sys.exit (load_entry_point (‘folderclone == 0.5.4b1’, ‘console_scripts’, ‘multifolderclone’) ())
File «c: \ users \ enuc \ appdata \ local \ programs \ python \ python39 \ lib \ site-packages \ folderclonecli \ mfcparse.py», line 37, in main
raise e
File «c: \ users \ enuc \ appdata \ local \ programs \ python \ python39 \ lib \ site-packages \ folderclonecli \ mfcparse.py», line 31, in main
mfc.clone ()
File «c: \ users \ enuc \ appdata \ local \ programs \ python \ python39 \ lib \ site-packages \ folderclone \ multifolderclone.py», line 354, in clone
self._rcopy (drive, 1, self.source, i, root_dir, », self.width)
File «c: \ users \ enuc \ appdata \ local \ programs \ python \ python39 \ lib \ site-packages \ folderclone \ multifolderclone.py», line 301, in _rcopy
drive = self._rcopy (
File «c: \ users \ enuc \ appdata \ local \ programs \ python \ python39 \ lib \ site-packages \ folderclone \ multifolderclone.py», line 267, in _rcopy
raise RuntimeError (‘Out of SAs.’)
RuntimeError: Out of SAs.
y nose solucionarlo, ayuda!
compis, a mi me salta este error cuando lleva 5 carpetas, sabeis resolverlo?
Out of SAs.
Traceback (most recent call last):
File «C:\Users\eNuc\AppData\Local\Programs\Python\Python39\Scripts\multifolderclone-script.py», line 33, in
sys.exit(load_entry_point(‘folderclone==0.5.4b1’, ‘console_scripts’, ‘multifolderclone’)())
File «c:\users\enuc\appdata\local\programs\python\python39\lib\site-packages\folderclonecli\mfcparse.py», line 37, in main
raise e
File «c:\users\enuc\appdata\local\programs\python\python39\lib\site-packages\folderclonecli\mfcparse.py», line 31, in main
mfc.clone()
File «c:\users\enuc\appdata\local\programs\python\python39\lib\site-packages\folderclone\multifolderclone.py», line 354, in clone
self._rcopy(drive,1,self.source,i,root_dir,»,self.width)
File «c:\users\enuc\appdata\local\programs\python\python39\lib\site-packages\folderclone\multifolderclone.py», line 301, in _rcopy
drive = self._rcopy(
File «c:\users\enuc\appdata\local\programs\python\python39\lib\site-packages\folderclone\multifolderclone.py», line 267, in _rcopy
raise RuntimeError(‘Out of SAs.’)
RuntimeError: Out of SAs