Как добавить общий файл в указанную папку без изменения даты или полей? - PullRequest
0 голосов
/ 25 апреля 2018

Я программно добавляю общие файлы в папки в зависимости от владельца, но когда я это делаю, это изменяет пользователя «Изменено» и «Дата изменения».Есть ли способ добавить его в папку без изменения данных файлов?

    if (type == "A"){//add to "A" Folder
      destA_folder.addFile(file);
    }else{    //add to B Folder
      destB_folder.addFile(file);
    }

1 Ответ

0 голосов
/ 26 апреля 2018

Этого можно добиться с помощью Drive API v3.Когда папка добавляется с помощью DriveApp и Drive API v2, пользователь Modified By и дата изменения обновляются.Но в Drive API v3 они не обновляются.В этом примере сценария используется update Drive API v3.

Пример сценария:

var fileId = "### file ID ###"; // Please input file ID.

var orgFolder = DriveApp.getFileById(fileId).getParents().next().getId();
if (type == "A"){//add to "A" Folder
  var dstFolderA = '### destination folder ID ###'; // Please input destination folder ID.
  var url = "https://www.googleapis.com/drive/v3/files/" + fileId + "?addParents=" + dstFolderA + "&removeParents=" + orgFolder;
}else{    //add to B Folder
  var dstFolderB = '### destination folder ID ###'; // Please input destination folder ID.
  var url = "https://www.googleapis.com/drive/v3/files/" + fileId + "?addParents=" + dstFolderB + "&removeParents=" + orgFolder;
}
var params = {
  method: "patch",
  headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
  muteHttpExceptions: true,
};
var res = UrlFetchApp.fetch(url, params);
Logger.log(res)

Примечание:

  • Из вашего сценария кажется, что вы хотитетолько добавить родителя в файл.В этом случае файл имеет 2 родителей.Если вы хотите переместить файл, удалите исходных родителей.
  • В этом примере сценария исходный родительский элемент удален.Если вы не хотите удалять его, удалите "&removeParents=" + orgFolder из сценария.

Ссылки:

Если это не то, что вы хотите, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...