Примечание. Хотя у 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 {}
}