2017-02-24 174 views
0

我编程,我的API在我的应用程序服务帐户,它工作得很好,所有的连接,上传,下载和删除的东西,但是当我用用户服务,所有文件去我的个人驱动器,现在它去的地方,我认为它关系到谷歌云平台... 的问题是,我没有任何帐户那边,因为你需要支付使用,因此,没有人知道所有这些文件在哪里?谷歌云端硬盘API与服务帐户C#

这里我使用使代码的连接调用

public static DriveService Connection(string path, string username, string p12Path) 
    { 

     var certificate = new X509Certificate2(p12Path, "XXXXXXXX", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable); 

     ServiceAccountCredential credential = new ServiceAccountCredential(
      new ServiceAccountCredential.Initializer("g service account") 
      { 
       Scopes = Scopes 
      }.FromCertificate(certificate)); 

     DriveService service = new DriveService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = credential, 
      ApplicationName = ApplicationName 
     }); 

     return service; 
    } 

在这里,我使用上传文件的方法。

[Authorize] 
    public static Google.Apis.Drive.v3.Data.File Upload(DriveService service, string uploadFile, string name) 
    { 

     var body = new Google.Apis.Drive.v3.Data.File(); 
     body.Name = name; 
     body.MimeType = GetMimeType(uploadFile); 

     byte[] byteArray = System.IO.File.ReadAllBytes(uploadFile); 
     System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray); 
     FilesResource.CreateMediaUpload request = service.Files.Create(body, stream, GetMimeType(uploadFile)); 
     request.Upload(); 
     return request.ResponseBody; 
    } 

因此,谁能帮助我?

回答

1

在本thread所说的,代码是相同的,没有区别,如果你正在使用的oauth2或服务帐户。您可以用这个tutorial进行检查。也是从这个related post为主,如果你要上传的文件是在自己的驱动器的内容,那么你需要使用自己的帐户凭据到驱动器的SDK。这不需要涉及用户交互。您只需一次获取刷新令牌,然后使用该令牌为Drive生成访问令牌。希望这可以帮助!

+0

非常感谢M8,我很担心。你真的帮我:D –

+0

如果有帮助,你可以接受我的答案。 :) – abielita

+0

对不起,我以为我已经做到了。 –

相关问题