¿Cómo enumero mis artículos en Google Drive por nivel de acceso?

11

Me encontré accidentalmente compartiendo información confidencial en Google Drive. Esto ha sucedido varias veces. Así que quiero verificar lo que estoy compartiendo y con quién. Me gustaría ver una lista de mis elementos (archivos y carpetas) en Drive, ordenados por nivel de acceso: primero públicos, luego personas con el enlace, luego compartidas con personas específicas y finalmente privadas. ¿Es eso posible?

¿O hay alguna otra forma de lograr este objetivo?

Esta pregunta también se aplica a Dropbox, para lo cual publiqué una pregunta separada como se sugiere.

Vaddadi Kartick
fuente
Hecho. Actualicé la pregunta con un enlace a la otra pregunta, y viceversa.
Vaddadi Kartick

Respuestas:

1

Este script te acercará bastante a ese objetivo. Aquí hay un ejemplo de la salida .

Actualmente está configurado para ejecutarse en una carpeta y subcarpetas en particular, pero puede modificarlo para que se ejecute en toda la unidad (dependiendo de la cantidad de archivos que pueda agotar el tiempo de espera).

  1. Abre una nueva hoja de cálculo.
  2. Tengo que Tools>Script Editor
  3. Copie y pegue el script a continuación en esa ventana reemplazando todo
  4. Ponga su ID de carpeta en lugar de THE_FOLDER_ID
  5. Guárdalo
  6. Ejecute el script presionando el botón de reproducción (Ejecutar)
  7. Ve a ver lo que escribió en la hoja de cálculo y ordena como quieras.

    function listFolders(folder) {
    var sheet = SpreadsheetApp.getActiveSheet();
    sheet.appendRow(["Name", "Sharing Access", "Sharing Permission", "Get Editors", "Get Viewers", "Date", "Size", "URL", "Download", "Description", "Type"]); //writes the headers
    var folder = DriveApp.getFolderById("THE_FOLDER_ID");//that long chunk of random numbers/letters in the URL when you navigate to the folder
    
    var files = folder.getFiles();//initial loop on loose files w/in the folder
    
     var cnt = 0;
     var file;
    
     while (files.hasNext()) {
         var file = files.next();
         var listEditors = file.getEditors(); //gets the editor email(s), doesn't show your own as it's assumed
         var editors = [];
         for (var cnt = 0; cnt < listEditors.length; cnt++) {
             editors.push(listEditors[cnt].getEmail());
             Logger.log(editors);
         };
         var listViewers = file.getViewers(); //gets the viewer email(s)
         var viewers = [];
         for (var cnt = 0; cnt < listViewers.length; cnt++) {
             viewers.push(listViewers[cnt].getEmail());
             Logger.log(viewers);
         }
         cnt++;  //data chunk pushes all the file info to the ss
    
         data = [
             file.getName(),
             file.getSharingAccess(),
             file.getSharingPermission(),
             editors.toString(),
             viewers.toString(),
             file.getDateCreated(),
             file.getSize(),
             file.getUrl(),
             "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
             file.getDescription(),
             file.getMimeType(),
         ];
    
         sheet.appendRow(data);
    
     };
    
    
     var subfolders = folder.getFolders(); //same thing as above but for all the subfolders in the folder
    
     while (subfolders.hasNext()) {
         //Logger.log(folder);
         var name = subfolders.next();
    
         var files = name.getFiles();
    
         var cnt = 0;
         var file;
    
         while (files.hasNext()) {
             var file = files.next();
             var listEditors = file.getEditors();
             var editors = [];
             for (var cnt = 0; cnt < listEditors.length; cnt++) {
                 editors.push(listEditors[cnt].getEmail());
                 Logger.log(editors);
             };
             var listViewers = file.getViewers();
             var viewers = [];
             for (var cnt = 0; cnt < listViewers.length; cnt++) {
                 viewers.push(listViewers[cnt].getEmail());
                 Logger.log(viewers);
             }
             cnt++;
    
             data = [
                 file.getName(),
                 file.getSharingAccess(),
                 file.getSharingPermission(),
                 editors.toString(),
                 viewers.toString(),
                 file.getDateCreated(),
                 file.getSize(),
                 file.getUrl(),
                 "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
                 file.getDescription(),
                 file.getMimeType(),
             ];
    
             sheet.appendRow(data);
    
             };
     }
    

    }

Tom Woodward
fuente