Google drive api 这是补丁中的一个关键错误吗https://www.googleapis.com/drive/v2/files/fileId
我有一个主驱动器,其中保存着各种文件,这些文件使用不同的权限与不同的用户共享。我遇到的问题可以通过以下步骤重现: 在主驱动器上:Google drive api 这是补丁中的一个关键错误吗https://www.googleapis.com/drive/v2/files/fileId,google-drive-api,Google Drive Api,我有一个主驱动器,其中保存着各种文件,这些文件使用不同的权限与不同的用户共享。我遇到的问题可以通过以下步骤重现: 在主驱动器上: 插入一个名为testFile的新文件,其MimeType为application/vnd.google-apps.document 为用户1插入“写入”权限 为用户2插入“读取”权限 在user2驱动器上: 创建一个新文件夹“测试文件夹” 使用Patch命令为新文件夹分配一个新的父文件夹“测试文件夹” 共享文件testFile 将发生的情况是,user2将拥有
- 插入一个名为testFile的新文件,其MimeType为application/vnd.google-apps.document
- 为用户1插入“写入”权限
- 为用户2插入“读取”权限
- 创建一个新文件夹“测试文件夹”
- 使用Patch命令为新文件夹分配一个新的父文件夹“测试文件夹” 共享文件testFile
public class UserOverridesPermissionTest
{
private string m_masterEmail;
private string m_userEmail;
private DriveService m_masterDrive;
private DriveService m_userDrive;
public UserOverridesPermissionTest(string masterDriveEmail, string userDriveEmail, GoogleDriveConfig config)
{
m_masterEmail = masterDriveEmail;
m_userEmail = userDriveEmail;
var cert = new X509Certificate2(config.PrivateKeyPath, config.KeyPassword, X509KeyStorageFlags.Exportable);
m_masterDrive = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(config.ServiceAccountEmail)
{
Scopes = new[] { DriveService.Scope.Drive },
User = m_masterEmail
}.FromCertificate(cert))
});
m_userDrive = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(config.ServiceAccountEmail)
{
Scopes = new[] { DriveService.Scope.Drive },
User = m_userEmail
}.FromCertificate(cert))
});
}
public void Test()
{
var testFile = m_masterDrive.Files.Insert(new File()
{
Title = "testFile",
MimeType = "application/vnd.google-apps.document"
}).Execute();
m_masterDrive.Permissions.Insert(new Permission()
{
Value = m_userEmail,
Role = "reader",
Type = "user"
}, testFile.Id).Execute();
var testFolder = m_userDrive.Files.Insert(new File()
{
Title = "test folder",
MimeType = "application/vnd.google-apps.folder",
}).Execute();
m_userDrive.Files.Patch(new File()
{
Parents = new []
{
new ParentReference()
{
Id = testFolder.Id
}
}
}, testFile.Id).Execute();
var permissions = m_masterDrive.Permissions.List(testFile.Id).Execute();
Assert.AreEqual("reader", permissions.Items.Single(p => p.EmailAddress == m_userEmail).Role);
}
}
当您将“test folder”设置为“testFile”的父级时,您是以什么用户的身份执行此操作的?我使用的是user2的帐户我无法复制此操作。您可以在api资源管理器中提供示例代码或一系列步骤来演示此问题?谢谢,我们正在调查。