使用Google API for .NET从gDrive下载文件的问题

问题描述 投票:0回答:1

我有一个应用程序,因为几年用户可以从gDrive加载数据。数据可以来自原生谷歌电子表格(gSheets)或文件,如txt,csv,xlsx。突然间,因为本周有时文件无法下载,但我们方面没有任何改变。当我尝试下载文件时,我现在得到一个基本上是登录屏幕的html页面的内容。但是,仍然可以下载gSheets的内容,因此不能归因于我正在使用的服务帐户的一些访问问题。我还可以确认文件仍与该服务帐户共享。我正在使用此代码下载文件:

        String serviceAccountEmail = this.apiConfig.ClientIdEmail;
        Byte[] keyFile = this.apiConfig.FileP12;

        var certificate = new X509Certificate2(keyFile, "notasecret", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

        ServiceAccountCredential credential = new ServiceAccountCredential(
           new ServiceAccountCredential.Initializer(serviceAccountEmail)
           {
               Scopes = new[] { DriveService.Scope.Drive, DriveService.Scope.DriveFile }
           }.FromCertificate(certificate));

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

        var response = service.HttpClient.GetByteArrayAsync(exportUrl).Result;
        Stream downloadStream = new MemoryStream(response);

“exportUrl”具有格式

https://docs.google.com/a/<domain.com>/uc?id=<fileId>&export=download&gid=0

当我在浏览器中尝试这个Url时,我可以毫无问题地下载文件。在此期间,我尝试使用NuGet(版本1.38)的最新dll for Google.Apis.Drive.v2和Google.Apis.Drive.v3。有没有人知道为什么这些下载不再突然出现?

c# google-api google-drive-sdk google-api-dotnet-client
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.