Comment répertorier mes éléments dans Google Drive par niveau d'accès?

11

Je me suis retrouvé à partager accidentellement des informations sensibles dans Google Drive. Cela s'est produit plusieurs fois. Je veux donc vérifier ce que je partage et avec qui. J'aimerais voir une liste de mes éléments (fichiers et dossiers) dans Drive, triés par niveau d'accès: d'abord public, puis les personnes disposant du lien, puis partagées avec des personnes spécifiques, et enfin privées. Est-ce possible?

Ou existe-t-il un autre moyen d'atteindre cet objectif?

Cette question s'applique également à Dropbox, pour laquelle j'ai posté une question distincte comme suggéré.

Vaddadi Kartick
la source
Terminé. J'ai mis à jour la question avec un lien vers l'autre question, et vice-versa.
Vaddadi Kartick

Réponses:

1

Ce script vous rapprochera de cet objectif. Voici un exemple de sortie .

Il est actuellement configuré pour s'exécuter sur un dossier et des sous-dossiers particuliers, mais vous pouvez le modifier pour qu'il s'exécute sur l'ensemble du lecteur (en fonction du nombre de fichiers qu'il peut expirer).

  1. Ouvrez une nouvelle feuille de calcul.
  2. Aller à Tools>Script Editor
  3. Copiez et collez le script ci-dessous dans cette fenêtre en remplaçant tout
  4. Mettez votre ID de dossier à la place de THE_FOLDER_ID
  5. Sauvegarde le.
  6. Exécutez le script en appuyant sur le bouton de lecture (Exécuter)
  7. Allez voir ce qu'il a écrit sur la feuille de calcul et triez comme vous le souhaitez.

    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
la source