我想使用AppmMaker中的脚本将文件从MyDrive传输到TeamDrive。我使用DriveApp在MyDrive中创建文件,并使用来自appmaker的DrivePicker小部件,我从目标文件夹获取ID以保存文件。 DriveApp可以通过以下方式在TeamDrive中移动文件
var file = DriveApp.getFileById(fileId);
var parentFolder = DriveApp.getFolderById(TEAM_DRIVE_ID);
parentFolder.addFile(file);
但不在TeamDrive的文件夹中。
我尝试使用此代码:
function moveFileToFolder(fileIds, newFolderId) {
var file = Drive.Files.get(fileIds, {supportTeamDrives: true,supportsTeamDrives: true});
Drive.Files.patch(file, fileIds, {
removeParents: file.parents.map(function(f) { return f.id; }),
addParents: [newFolderId],
supportTeamDrives: true,
supportsTeamDrives: true
});
}
我出现错误“无法在Team Drive项目上设置共享限制。”
参考:How to move a file from MyDrive to Team Drive?
(参考解决方案不起作用,因为我想将其移动到teamdrive的文件夹中而不是直接在teamdrive中)
有什么想法吗?
答案 0 :(得分:0)
文件元数据中有一个要更改的参数,因为驱动器文件和团队驱动器文件不相同。您可以使用
进行更改var file = Drive.Files.get(FileId);
file.capabilities.canMoveTeamDriveItem = true;
然后只需用
移动它var fileDriveApp = DriveApp.getFileById(FileId);
fileDriveApp.getParents().next().removeFile(fileDriveApp);
var folder = DriveApp.getFolderById(foldersId);
folder.addFile(fileDriveApp);
参考:https://developers.google.com/drive/api/v3/reference/files