Не удалось периодически загружать файлы на диск Google - PullRequest
0 голосов
/ 26 декабря 2018

Использование API Google Drive для загрузки файлов.Одновременно запускается несколько консольных приложений для загрузки различных частей файлов в папку, и их файлы не перекрываются.Это достигает предела квоты.Затем реализуется while-try-catch для повторного выполнения запроса всякий раз, когда он выдает исключение из-за ограничения квоты.Метод list и create directory работает хорошо, но не метод загрузки (т.е. создания).Некоторые файлы отсутствуют при проверке с сайта Google Диска

Пробовал использовать FileStream вместо MemoryStream, но, похоже, это не связано.

public static Google.Apis.Drive.v3.Data.File uploadFile(DriveService _service, string _uploadFile)
    {
        bool again = true;
        string[] p = _uploadFile.Split('/');
        if (System.IO.File.Exists("C:/"+_uploadFile))
        {
            Google.Apis.Drive.v3.Data.File body = new Google.Apis.Drive.v3.Data.File();
            body.Name = System.IO.Path.GetFileName(p[p.Length-1]);
            body.Description = "";
            body.MimeType = GetMimeType("C:/"+_uploadFile);
            body.Parents = new List<string>()  { ID };


            // File's content.
            System.IO.FileStream stream = new System.IO.FileStream("C:/" + _uploadFile, FileMode.Open);
            try
            {
                FilesResource.CreateMediaUpload request = _service.Files.Create(body, stream, GetMimeType("C:/" + _uploadFile));
                while (again)
                {
                    try
                    {
                        request.Upload();
                        again = false;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("uploadFile: "+p[p.Length-1]);
                    }
                }
                return body;
            }
            catch (Exception e)
            {
                Console.WriteLine("An error occurred: " + e.Message);
                return null;
            }
        }
        else
        {
            Console.WriteLine("File does not exist: " + _uploadFile);
            return null;
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...