我有一个系统,我们在其中使用服务帐户连接到Google Drive SDK。它已经正常运行了大约6个月,但是从一周前开始,没有任何代码更改,它不再能够从Google云端硬盘下载文件。我们仍然可以列出文件,但是下载现在会跳至授权页面,而不是下载文件。我确定我的服务帐户具有该文件的权限。
要下载文件,请使用以下代码:
var downloader = new MediaDownloader(driveService);
var stream = new MemoryStream();
var download = await downloader.DownloadAsync(file.Url, stream);
if (download.Exception != null) throw download.Exception;
// Reset to the begining for replay
stream.Seek(0, SeekOrigin.Begin);
return stream;
答案 0 :(得分:0)
您可以共享
(xxxxx@gmail.com)的文件夹
使用(xxx@xxx.iam.gserviceaccount.com)
然后相同的代码将起作用
有2个用户:
GC语言服务帐户(xxx@xxx.iam.gserviceaccount.com)
Google云端硬盘帐户(xxxxx@gmail.com)
您不能使用您的GClould服务帐户访问Google云端硬盘应用
答案 1 :(得分:0)
我遇到了类似的问题,这对我有用:
Google.Apis.Drive.v2.Data.File file = service.Files.Get(fileId).Execute();
if (!file.MimeType.Equals("application/vnd.google-apps.spreadsheet"))
{
//for files use another Url
exportUrl = file.DownloadUrl;
}
var response = service.HttpClient.GetByteArrayAsync(exportUrl).Result;
Stream downloadStream = new MemoryStream(response);