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é.
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é).
Tools>Script Editor
THE_FOLDER_ID
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);
};
}
}