Como faço para listar meus itens no Google Drive por nível de acesso?

11

Eu me encontrei acidentalmente compartilhando informações confidenciais no Google Drive. Isso aconteceu várias vezes. Então, eu quero verificar o que estou compartilhando e com quem. Gostaria de ver uma lista dos meus itens (arquivos e pastas) no Drive, classificados por nível de acesso: primeiro público, depois pessoas com o link, depois compartilhadas com pessoas específicas e finalmente privadas. Isso é possível?

Ou existe alguma outra maneira de alcançar esse objetivo?

Esta pergunta também se aplica ao Dropbox, para a qual postamos uma pergunta separada, conforme sugerido.

Vaddadi Kartick
fonte
Feito. Atualizei a pergunta com um link para a outra pergunta e vice-versa.
Vaddadi Kartick

Respostas:

1

Esse script o aproximará muito desse objetivo. Aqui está um exemplo da saída .

Atualmente, está configurado para ser executado em uma pasta e subpastas específicas, mas você pode modificá-lo para executar em toda a unidade (dependendo do número de arquivos que podem atingir o tempo limite).

  1. Abra uma nova planilha.
  2. Ter que Tools>Script Editor
  3. Copie e cole o script abaixo nessa janela, substituindo tudo
  4. Coloque o ID da sua pasta no lugar de THE_FOLDER_ID
  5. Salve isso.
  6. Execute o script pressionando o botão play (Run)
  7. Vá ver o que está escrito na planilha e classifique como quiser.

    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
fonte