我使用.NET SDK for google drive api在Google云端硬盘上上传/创建文件。一切正常,我可以根据我的业务逻辑,如作家,读者,评论者或所有者给予用户许可。但是我想隐藏除了所有者之外的所有人的共享按钮,因为我的业务逻辑应该决定哪个文件应该与谁共享以及何时共享。
以下是共享文档的代码:
try
{
Google.Apis.Drive.v2.Data.Permission permission = new Google.Apis.Drive.v2.Data.Permission();
switch (role)
{
case GoogleRoles.WRITER:
case GoogleRoles.READER:
case GoogleRoles.OWNER:
{
permission.Role = role;
permission.Value = userEmail;
permission.Type = "user";
break;
}
case GoogleRoles.COMMENTER:
{
permission.Role = GoogleRoles.READER; //Need to assign role before we assign the additional role of commenter.
List<String> additionalRoles = new List<string>();
additionalRoles.Add(GoogleRoles.COMMENTER);
permission.AdditionalRoles = additionalRoles;
permission.Type = "user";
permission.Value = userEmail;
break;
}
}
PermissionsResource.InsertRequest insertRequest = DriveService.Permissions.Insert(permission, fileId);
insertRequest.SendNotificationEmails = true;
insertRequest.Execute();
其中DriveService
是服务帐户的实例。任何指针都会有很大的帮助。
答案 0 :(得分:0)
不幸的是,Drive API尚不支持禁用共享或禁用下载的功能。请在此处提交功能请求:https://code.google.com/a/google.com/p/apps-api-issues/issues/entry?template=Feature%20request&labels=Type-Enhancement,API-Drive
答案 1 :(得分:0)
我已将此作为增强功能提出,并得到了响应。所以在谷歌驱动API中它不是权限的一部分,但这些是文件本身的属性,所以我们需要设置他的属性,而不是像以下那样的权限:
File.LabelsData labels = new File.LabelsData();
labels.Restricted = true;
File body = new File();
body.Labels = labels;
body.WritersCanShare = false;
它解决了Share
的问题,但上述更改并未解决下载问题。有关此问题的更多详细信息,请访问https://developers.google.com/drive/v2/reference/files