web-dev-qa-db-fra.com

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

Je me suis retrouvé à partager accidentellement des informations sensibles dans Google Drive. Cela s'est passé 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 avec le lien, puis partagé avec des personnes spécifiques, et enfin privé. Est-ce possible?

Ou y a-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é.

11
Vaddadi Kartick

Ce script vous rapprochera de cet objectif. Voici un exemple de la 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'intégralité du lecteur (en fonction du nombre de fichiers, le délai d'expiration peut être dépassé).

  1. Ouvrez une nouvelle feuille de calcul.
  2. Arrivé à Tools>Script Editor
  3. Copiez et collez le script ci-dessous dans cette fenêtre en remplaçant tout
  4. Mettez votre identifiant de dossier à la place de THE_FOLDER_ID
  5. Sauvegarde le.
  6. Exécutez le script en cliquant 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);
    
             };
     }
    

    }

1
Tom Woodward