Skip to content

Instantly share code, notes, and snippets.

@snaka
Last active July 18, 2020 01:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save snaka/8618a1bc19d2ee2e53a917ee958ee986 to your computer and use it in GitHub Desktop.
Save snaka/8618a1bc19d2ee2e53a917ee958ee986 to your computer and use it in GitHub Desktop.
Google Drive のオーナー権限を一括で変更するやつ
var BASE_FOLDER_ID = PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
var NEW_OWNER = PropertiesService.getScriptProperties().getProperty('NEW_OWNER');
var me = Session.getActiveUser().getEmail();
var hasError = false;
function main() {
var folder = DriveApp.getFolderById(BASE_FOLDER_ID);
chownWithFolder(folder);
if (hasError) {
throw new Error('実行中にエラーが発生');
}
}
function chownWithFolder(folder) {
chownIfNeeded(folder);
var files = folder.searchFiles('"me" in owners');
while (files.hasNext()) {
var file = files.next();
console.log('file: ', file.getName());
chownIfNeeded(file);
}
var folders = folder.getFolders();
while (folders.hasNext()) {
var folder = folders.next();
console.log('folder: ', folder.getName());
chownWithFolder(folder);
}
}
function chownIfNeeded(fileOrFolder) {
if (fileOrFolder.getOwner().getEmail() === me) {
console.log('***** chown to ', NEW_OWNER);
try {
fileOrFolder.setOwner(NEW_OWNER);
} catch(e) {
console.error(e);
hasError = true;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment