Можно ли с помощью Google Drive API загружать несколько файлов одновременно? - PullRequest
0 голосов
/ 05 ноября 2018

Примечание. Хотя у Google есть рабочая система для пакетных запросов, она не совместима с запросами, связанными с мультимедиа. Пока что мне удалось заставить его работать только с объектами File, которые не состоят из медиа-контента.

Ниже приведен мой текущий код, используемый для загрузки мультимедиа из папки Drive. Обратите внимание, что все носители состоят из простых крошечных документов RTF, и поэтому вы должны иметь представление о размерах файлов. Моя проблема в том, что, хотя файлы загружаются, как и ожидалось, это МЕДЛЕННЫЙ процесс! У меня есть папка в среднем более 300 файлов. Должен быть способ ускорить этот процесс.

private async void Button_Click()
{
    foreach (var driveFile in driveFileList)
    {
        await GetFileContentAsync(driveFile.Id, CancellationToken.None);
    }
}

public async Task<AccessResult> GetFileContentAsync (string driveId, CancellationToken cancellationToken) 
{
    cancellationToken.ThrowIfCancellationRequested ();
    GetRequest getRequest = new GetRequest (DriveService, driveId);
    getRequest.Fields = "*";
    string incomingJsonContent;

    try 
    {
        using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream ())
        using (System.IO.StreamReader streamReader = new System.IO.StreamReader (memoryStream)) 
        {
            IDownloadProgress downloadProgress = await getRequest.DownloadAsync (memoryStream, cancellationToken);
            memoryStream.Position = 0;
            incomingJsonContent = await streamReader.ReadToEndAsync ();
        }

        return new AccessResult (true, incomingJsonContent);
    } catch {}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...