Не могу больше скачивать файлы - PullRequest
4 голосов
/ 08 марта 2019

У меня есть система, в которой мы используем служебную учетную запись для подключения к Google Drive SDK. Он работал нормально около 6 месяцев, но начиная с недели назад, без изменений кода, он больше не может загружать файлы с Google Drive. Мы по-прежнему можем перечислять файлы, но загрузки теперь возвращаются на страницу авторизации, а не загружают файл. Я уверен, что моя учетная запись службы имеет права доступа к файлу.

Чтобы записать файл, я использую следующий код:

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;

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

У меня была похожая проблема, и у меня это сработало:

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);
0 голосов
/ 19 марта 2019

Решение

  • Вы можете поделиться

  • Папка (xxxxx@gmail.com)

  • С (xxx@xxx.iam.gserviceaccount.com)

  • тогда будет работать тот же код

Почему

  • 2 пользователя:

    • Сервисная учетная запись GClould (xxx@xxx.iam.gserviceaccount.com)

    • Аккаунт Google Диска (xxxxx@gmail.com)

  • Вы не можете использовать свою учетную запись службы GClould для доступа к Google Drive App

Как

enter image description here

...