我在 C# 中使用 Google Drive API 来复制、更改所有者和删除文档的所有权限,我是这样做的:
File file = User1DriveService.Files.Copy(fileWithTitleChanged, OriginalFile.Id).Fetch()
//new owner permission
Permission newOwnerPermission = new Permission();
newOwnerPermission.Value = User2Email;
newOwnerPermission.Type = "user";
newOwnerPermission.Role = "owner";
newOwnerPermission.WithLink = false;
User1DriveService.Permissions.Insert(newOwnerPermission, file.Id).Fetch();
//remove all permissions, using User2 DriveService
permissionList = User2DriveService.Permissions.List(file.Id).Fetch();
foreach (Permission CurrentPermission in permissionList.Items)
{
User2DriveService.Permissions.Delete(file.Id, CurrentPermission.Id).Fetch();
}
//update name and folder for User2
File FileCopyProperties = new File();
FileCopyProperties.Parents = newParentReferenceList; //folder in User2 drive
FileCopyProperties.Title = NewFileTitle;
User2DriveService.Files.Update(FileCopyProperties, file.Id).Fetch();
一切正常,除了User1仍然在他的云端硬盘中看到该文档。并非总是立即出现,但它总是最终显示出来,有时会在处理后几个小时。此外,我使用 API 对那些复制的文档运行了一个虚假的用户权限插入/删除,这些文档从 User1 Drive 中消失,但几个小时后又重新出现。我什至无法使用来自 User1 的 API 访问这些文档。当我从 User1 中单击这些文档时,它说我无权访问并需要请求它。
在 User2 方面一切都很好。
这不是浏览器缓存问题,因为我已清除所有内容并多次更改浏览器,甚至计算机。