我有一個csv檔案,里面有某一組人的名字、身份證號碼和電子郵件ID的資料。我想利用這些資訊,在Google Drive的父檔案夾中,我想創建名稱為firstname_ID_number的子檔案夾,并將每個檔案夾的訪問權限只設定為相應的電子郵件。
換句話說,串列中的每個人應該只能訪問他們自己在該驅動器中的檔案夾,而不是其他人的。
我的第一個想法是使用Google Colab和Google Drive API來完成這個任務。但我不知道如何或從哪里開始。我希望得到一些善意的指導。
uj5u.com熱心網友回復:
你可以先將你的csv檔案匯入谷歌表格中,然后使用Apps Script來完成你的任務。
因此,假設你的作業表最終看起來與此類似:
| 名字 | 身份證號碼電子郵件ID||
|---|---|---|
| 姓名1 | N1E1 | Name2 |
| N2 | N2 | E2 | Name3 |
| N3 | N3E3 |
你可以利用Drive高級服務,以創建檔案夾和分配權限。你可以看看下面的腳本,以實作這個目的:
Code
<代碼
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)。
}
}
函式 createFolder(fileName) {
let optionalArgs = { supportsAllDrives: true };
讓資源 = {
title: fileName,
mimeType: 'application/vnd.google-apps.folder'。
parents: [{
"id": "shared_drive_id"
}]
}
let folder = Drive.Files.insert(resource, null, optionalArgs);
回傳folder.id。
}
function createPermission(emailAddress, folderId) {
let optionalArgs = { supportsAllDrives: true };
讓資源 = {
role: "ROLLE",
type: "型別"。
emailAddress: emailAddress
}
Drive.Permissions.insert(resource, folderId)。
}
解說
該腳本由三個函陣列成。mainFunction, createFolder 和 createPermission。mainFunction用于從作業表中收集所有的值,而createFolder和createPermission則用于創建檔案夾并為其分配必要的權限。由于你正在使用共享驅動器,這里的正確方法是使用Drive高級服務。
參考資料
參考資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/327679.html
標籤:
