Google Drive Api (. Net) возвращает ошибку после создания нескольких папок - PullRequest
0 голосов
/ 29 мая 2020

Я разрабатываю веб-приложение на MVC. Net (VS 2019 + Google Drive Api v3). Мы используем учетную запись службы, использующую общую папку из простой учетной записи Google. Нам нужно создать папку для каждого задания наших учеников. У нас 2000 студентов, и у них в среднем 10 задач в месяц. Так что на нашем Google диске будет много папок. Из-за этого я решил провести несколько тестов с консольным приложением и обнаружил некоторые ошибки после создания нескольких папок. Кто-нибудь знает, есть ли у Google Drive Api своего рода ограничение на создание нескольких папок? Ниже показано консольное приложение, подтверждающее это с помощью изображения для печати. ​​

namespace DriveQuickstart
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] Scopes = { DriveService.Scope.DriveReadonly, DriveService.Scope.DriveFile };            
            ServiceAccountCredential credential;                                    
            using (var stream =
                            new FileStream("key.json", FileMode.Open, FileAccess.Read))
            {                            
                credential = GoogleCredential.FromStream(stream)
                                     .CreateScoped(Scopes)
                                     .UnderlyingCredential as ServiceAccountCredential;                
            }
            // Create Drive API service.
            var service = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "Test App",
            });
            Google.Apis.Drive.v3.Data.File body = new Google.Apis.Drive.v3.Data.File();
            for (int i = 0; i < 50; i++)
            {
                body.Name = "Test_" + Guid.NewGuid().ToString();
                body.Description = "Created by me!";
                body.MimeType = "application/vnd.google-apps.folder";
                body.Parents = new List<string> { "1hLsDTub8bhlVS2ax34P8wGx5RsD0n8MA" };
                try
                {
                    service.Files.Create(body).Execute();
                    Console.WriteLine("Folder " + (i+1).ToString() + " created.");
                }
                catch (Exception e)
                {                    
                    Console.WriteLine("Error = " + e.InnerException.Message);
                }
            }                     
        }
    }
}

Внутреннее исключение Ошибка: «Невозможно прочитать данные из транспортного соединения. Удаленный сервер принудительно отменил его».

Печать2

...