2017-05-08 61 views
0

我从帐户A共享了一个文件,帐户B只能读取此文件。Google Drive API:从其他帐户导入文件

DriveWeb,我可以导入它很容易。然后用Drive API,账户B如何导入该文件(无需传输)。

谢谢。

+0

您正在处理哪种语言? –

+0

我使用C#但讨厌Google Drive Lib,然后使用httprequest编写[new lib](https://github.com/tqk2811/Cloud-Manager/tree/master/Cloud/GoogleDrive)。我是自学C#的,那就不要嘲笑代码。 –

回答

0

假设您熟悉身份验证并具有设置Authenticated Drive服务的基本想法。如果不是,请阅读documentationthis教程,该教程将帮助您开始使用API​​。

共享文件可由其驱动器内的接收器在共享它的人的所有权下访问。这些文件不会占用您的配额,只有在许可的情况下才能访问。因此,我假定通过“导入”,您的意思是获取文件的所有权并将其保存在账户B中。

好的,让Service为账户B的认证驱动器服务。假设账户B有权访问所需的文件在帐户A中。如果不是,请首先输入Insert Permission

FileId正在文件的Id被复制和ParentId是哪个文件是要复制的父目录的Id,这里是使共享文件的副本的方法。

public void CopyFile(DriveService Service, string FileId, string ParentId) 
{ 
    try 
    { 
     File FileToCopy = Service.Files.Get(FileId).Execute(); 

     File copiedFile = new File(); 
     copiedFile.Title = FileToCopy.Title; 
     copiedFile.Parents = new List<ParentReference>() { new ParentReference() { Id = ParentId } }; 

     Service.Files.Copy(copiedFile, FileToCopy.Id).Execute(); 
    } 
    catch (Exception e) 
    { 
     MessageBox.Show("An error occurred: " + e.Message); 
    } 
} 
+0

啊答谢答复,我可以在[这里](https://developers.google.com/drive/v2/reference/parents/insert)测试,我发现它。它是Parents.insert方法,并且您的回复是Files.Copy方法(它创建新文件,而不是“导入”) –

相关问题