Google Drive es maravilloso para algunas cosas, pero para otras está muy limitado. Un buen ejemplo es de lo que voy a hablar hoy aquí.
Compartir una carpeta o un archivo en un disco Cloud es algo muy sencillo y muy útil para poder hacer llegar información a otros. Puedes compartir un enlace con el mundo, dar acceso a un proyecto a la gente con la que colabores, limitarlo con una clave (bueno, no en Google Drive), etc, etc.
Esta facilidad para compartir es una bendición pero al mismo tiempo puede ser una pesadilla si no llevas un mínimo control. ¿Quién se acuerda de todo lo que ha compartido? Y algunas cosas que compartiste alegremente hace 1 año, quizá ahora no quieras compartirlas con las mismas personas, por ejemplo. Por eso es muy importante poder saber exactamente qué has compartido para, como mínimo, hacer una pequeña auditoría de vez en cuando...
En la mayor parte de los discos cloud tienes una forma sencilla de controlar qué has compartido exactamente. Por ejemplo, la siguiente captura muestra los apartados específicos que tienen Dropbox, OneDrive y pCloud para averiguar esta información:
Sin embargo no es el caso con Google Drive. A las personas de Google solo le interesa que sepas qué han compartido contigo, pero no lo que tú has compartido con los demás. Se trata de la sección "Compartido conmigo" que tan bien conocerás:
Y para mi esto es un fallo tremendo, especialmente si usas la edición empresarial de Google, en la que compartes archivos y carpetas de la empresa.
Así que, armado con un poco de paciencia y mis conocimientos de programación, me resolví a solucionarlo. He creado un script que puedes utilizar para obtener esta información siempre que quieras, y de manera sencilla.
A continuación te explico cómo lograrlo.
Paso a paso: crear un script para saber qué has compartido en Google Drive
Lo primero que debemos hacer es crear una nueva hoja de cálculo de Google vacía:
Esta hoja nos servirá para albergar el script y en el futuro la utilizaremos para obtener la lista con todos los elementos compartidos que tengamos.
Una vez abierta la hoja, dale un nombre (por ejemplo Listar archivos compartidos públicamente
) y vete al menú Extensiones > Apps Script
para generar una nueva secuencia de comandos asociada a la hoja de cálculo:
Esto abrirá una nueva pestaña con el editor de scripts de Google, en el que podremos introducir código que automatice la hoja de cálculo. Por defecto mostrará un editor sin nombre y una función vacía, como muestra la siguiente captura:
Antes de nada, dale un nombre al proyecto de script, por ejemplo Listar-Archivos-Publicos-GDrive
.
En la sección de código, elimina esa función vacía y vamos a escribir algo de código. Mejor dicho, no lo vas a escribir: lo vas a pegar desde el archivo de texto que te dejo dentro de este archivo ZIP (1,57KB).
Abre el archivo Listar-Archivos-Publicos-GDrive.txt
, copia su contenido y pégalo en el editor. Dale al icono de guardar. Obtendrás algo parecido a esto:
Enseguida pasaremos al a parte de usarlo pero, antes de continuar, creo importante que sepas qué hace exactamente este Google script. Está comentado, por lo que si sabes programar deberías entenderlo sin gran dificultad, y utiliza el servicio de Google Drive de los Google Workspace Services para Google Scripts.
Tiene 4 funciones (en la siguiente lista las muestro por un orden lógico, no como están en el script):
buscarArchivosPublicos()
: es la función principal que se encarga de listar todos los archivos y carpetas compartidos en tu Google Drive, en la hoja de cálculo abierta en este momento. Utiliza el método searchFiles()
de los servicios que he mencionado antes, y la API de automatización de hojas de cálculo para insertar filas en nuestra hoja de cálculo. Lista primero los archivos compartidos y luego las carpetas compartidas. Finalmente muestra un resumen de cuántas de cada tipo tenemos.
logObjectInfoToSheet()
: esta función auxiliar es utilizada por la anterior para insertar una fila en la hoja de cálculo para cada elemento compartido.
getLocations()
: se encarga de obtener la ubicación o ubicaciones de un determinado archivo o carpeta, puesto que en Google Drive un mismo archivo puede estar presente en varios sitios al mismo tiempo. Es utilizada por la anterior para mostrar esta información.
onOpen()
: este metodo es especial ya que actúa como un evento y se llama de manera automática cuando un usuario accede a la hoja de cálculo actual, en la que está definido este script. Lo que hago desde aquí es crear una nueva entrada en los menús de la hoja de cálculo llamado Buscar archivos
, con un nuevo comando llamado Lista archivos compartidos públicamente
, que lo que hace es llamar a la primera función y por lo tanto obtener una lista de archivos que hemos compartido.
Analiza el código por tu cuenta y verás que es sencillo, aunque como yo no domino Google Scripts he de reconocer que me llevó unas horas de prueba y error y mirar la documentación dar con la tecla para que todo esto funcionase 😖
De acuerdo. Ya casi está. Ahora lo que tienes que hacer es asegurarte de que has grabado el script, y deberás ejecutarlo al menos una vez desde el editor de scripts para otorgarle los permisos apropiados. Dale al botón Run
que verás en la barra de herramientas. En realidad no ejecutará el script ya que no hay código "suelto", fuera de las funciones, pero sí que lo analizará y determinará los permisos que necesitas, sin los cuales no podría hacer su función.
Primero te aparecerá un diálogo de aviso diciéndote que deberás concederle permisos:
Dale a Revisar permisos
y verás una pantalla típica de Google para conceder permisos al script, que en este caso requiere de Ver y descargar archivos de Google Drive y de Ver, editar, crear y borrar hojas de cálculo.
Acepta y volverás al editor de scripts en el que aparecerá un log de ejecución diciendo que el script se ha ejecutado con éxito aunque, como dije antes, no ha ejecutado nada realmente, solo lo ha interpretado y nos sirve para saber que no hay errores de sintaxis:
Vale, ya está listo. Ahora puedes cerrar el editor de scripts y volver a la hoja de cálculo. Verás un nuevo menú al final de todo, a la derecha, tal y como he descrito:
Pulsa la nueva opción de listar los archivos y el script empezará a ejecutarse. Dado que efectúa una búsqueda de archivos y a medida que los encuentra los va listando, su ejecución puede tardar unos segundos, dependiendo de la cantidad de archivos que tengas, durante los cuales podrás ver un mensaje de que se está ejecutando, con la opción de cancelarlo si lo deseas:
MUY IMPORTANTE: los scripts de App Script tienen un límite de 6 minutos para ejecutarse en cuentas gratuitas de Google. En cuentas de Google Workspace (de pago) el límite es de 30 minutos. Si tienes muchos cientos de archivos para listar y una cuenta gratuita, seguramente te romperá antes de llegar al final. En ese caso tendrías que dividir la ejecución en trozos o tandas de x en x según la velocidad que te dé para entrar en 6 minutos. Aun así, existe un límite de 60 minutos de ejecución al día por disparador (en este caso, al ser un menú, podrás usar el script un máximo de 1 hora diaria). Los scripts de App Script no están pensados para grandes tareas, sino para cosas sencillas y rápidas, así que tengo en cuenta.
Una vez haya terminado tendrás un montón de filas en tu hoja de cálculo con todos los archivos compartidos, con su nombre, su(s) ubicación(es), el propietario del archivo, cuándo se creó, la dirección web del elemento compartido (que además podrás pulsar para verlo ) y su identificador único (la primera vez tendrás que estirar las celdas para que se vea bien la información):
Como puedes ver, en mi caso, tengo 105 archivos y 17 carpetas compartidos o compartidos conmigo, y puedo verlos todos en mi hoja de cálculo.
OJO: he hecho el script de modo que me liste todos los elementos compartidos existentes en mi Google Drive, no solo los que comparto yo sino también los que han compartido conmigo, por eso el propietario puedo no ser yo. Esto me parece muy útil para tener una visión general como la que ofrecen todos los demás discos cloud que he mencionado. Siempre puedes meter un filtro en la hoja de cálculo, en la primera fila, y filtrar por el campo Propietario
para dejar solo aquellos elementos en los que lo estés tú, si solo te interesan los compartidos contigo.
Una cosa importante a señalar es que puedes ejecutar este comando siempre que quieras en una hoja nueva dentro del archivo actual. simplemente crea una nueva hoja/pestaña en la parte inferior con el +
que allí tienes y ejecútalo de nuevo. Por si te da una idea, a mi por ejemplo me gusta tener un histórico de los archivos que he tenido compartidos por lo que cada vez que la ejecuto (de pascuas en ramos, la verdad) creo una nueva pestaña con la fecha actual en el formato yyyy-mm-ddd
de modo que luego los puedo comparar si quiero:
Este script me parece superútil y creo que cubre bien una de las carencias que tiene Google Drive respecto a esta cuestión de informar bien a sus usuarios.
¡Espero que te resulte útil a ti también!