【问题标题】:Document still visible in My Drive after changing owner and removing all permissions更改所有者并删除所有权限后,文档在“我的云端硬盘”中仍然可见
【发布时间】:2012-12-04 19:59:53
【问题描述】:

我在 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 方面一切正常。

这不是浏览器缓存问题,因为我已清除所有内容并多次更改浏览器,甚至计算机。

【问题讨论】:

  • 谷歌的任何人都可以告诉我这是否是更改文档所有者的正确方法?
  • 更新:几周前我与谷歌的某人交谈,我的代码一切正常,问题出在云端硬盘前端,根据他所说的可能需要一段时间才能解决。

标签: c# google-drive-api google-api-dotnet-client


【解决方案1】:

这听起来像是一个一致性问题。您可能期望强一致性,但请注意最终一致性。

https://developers.google.com/storage/docs/developer-guide#consistency 所述,列表操作是最终一致的,而 ACL 是强一致的。换句话说:权限工作正常,而列表稍后会更新。

【讨论】:

  • 在某些情况下我已经等了很多天,以确保这不仅仅是一个一致性问题,没有任何改变,无论我等了多长时间......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 2015-09-09
相关资源
最近更新 更多