如何将 csv 数据中的动态驱动器访问权限分配给谷歌驱动器文件夹?
Posted
技术标签:
【中文标题】如何将 csv 数据中的动态驱动器访问权限分配给谷歌驱动器文件夹?【英文标题】:How to allot dynamic drive access permission from csv data to google drive folders? 【发布时间】:2021-11-13 05:24:09 【问题描述】:我有一组人的csv file
和first name
、ID number
和email id
数据。我想获取此信息,并在 Google Drive 父文件夹中创建名为 firstname_ID_number
的子文件夹,并将每个文件夹的访问权限设置为仅对应的电子邮件。
换句话说,列表中的每个人都应该只能访问该驱动器中自己的文件夹,而不能访问其他人的文件夹。
我的第一个想法是使用Google Colab
和Google Drive API
来完成这项工作。但我不知道如何或从哪里开始。我将不胜感激。
【问题讨论】:
【参考方案1】:您可以先将 csv 文件导入 Google 表格,然后再使用 Apps 脚本完成任务。
因此,假设您的工作表最终看起来类似于以下内容:
First Name | ID Number | Email ID |
---|---|---|
Name1 | N1 | E1 |
Name2 | N2 | E2 |
Name3 | N3 | E3 |
您可以使用Drive
高级服务来创建文件夹并分配权限。您可以查看以下脚本以实现此目的:
代码
function mainFunction()
let spreadsheet = SpreadsheetApp.openById("SPREADSHEET_ID");
let sheet = spreadsheet.getSheetByName("SHEET_NAME");
let nameCol = sheet.getRange(START_ROW, START_COL, NO_ROWS, NO_COLS).getValues();
let idCol = sheet.getRange(START_ROW, START_COL, NO_ROWS, NO_COLS).getValues();
let emailCol = sheet.getRange(START_ROW, START_COL, NO_ROWS, NO_COLS).getValues();
for (let i = 0; i < nameCol.length; i++)
let fileName = nameCol[i + 1][0] + "_" + idCol[i + 1][0];
let folderId = createFolder(fileName);
createPermission(emailCol[i + 1][0], folderId);
function createFolder(fileName)
let optionalArgs = supportsAllDrives: true ;
let resource =
title: fileName,
mimeType: 'application/vnd.google-apps.folder',
parents: [
"id": "SHARED_DRIVE_ID"
]
let folder = Drive.Files.insert(resource, null, optionalArgs);
return folder.id;
function createPermission(emailAddress, folderId)
let optionalArgs = supportsAllDrives: true ;
let resource =
role: "ROLE",
type: "TYPE",
emailAddress: emailAddress
Drive.Permissions.insert(resource, folderId);
说明
脚本由三个函数组成:mainFunction
、createFolder
和createPermission
。 mainFunction
用于收集工作表中的所有值,而createFolder
和createPermission
用于创建文件夹并为其分配必要的权限。由于您使用的是共享驱动器,因此正确的方法是使用 Drive
高级服务。
参考
Range Class getValues();
Drive Advanced Service;
Drive API v2 Files:insert;
Drive API v2 Permissions:insert.
【讨论】:
感谢您的回答,尽管我解决了这个问题。如果有人想要参考,可以找到here。以上是关于如何将 csv 数据中的动态驱动器访问权限分配给谷歌驱动器文件夹?的主要内容,如果未能解决你的问题,请参考以下文章