Как загрузить в указанную папку c на Google Диске GoogleAPIs v3 в Dart? - PullRequest
0 голосов
/ 19 июня 2020

Я хочу загрузить изображения в определенную папку c.

Это функция, которую я использую сейчас для загрузки файлов, она загружает их в основную папку:

import 'package:googleapis/drive/v3.dart' as driveV3;

Future upload(File file) async {
    var client = await getHttpClient();
    var drive = driveV3.DriveApi(client);
    var response = await drive.files.create(
        driveV3.File()..name = p.basename(file.absolute.path),
        uploadMedia: driveV3.Media(file.openRead(), file.lengthSync())
        );
} 

Мне нужен способ загрузки ВСЕГДА в папку, которую можно создать в первый раз, или что-то в этом роде. что мне нужно изменить в приведенной выше функции, чтобы я мог указать имя папки EX: MyFolder и всегда загружать в нее?

1 Ответ

0 голосов
/ 19 июня 2020

Вы ищете parents класса File

Это свойство принимает список String. Эти строки представляют собой папки, в которые вы хотите загрузить файл. Кажется, файл можно загрузить в несколько папок.

Итак, ваш код должен выглядеть примерно так:

Future upload(File file) async {
  var client = await getHttpClient();
  var drive = driveV3.DriveApi(client);
  file.parents = ["folder_id"];
  var response = await drive.files.create(
      driveV3.File()..name = p.basename(file.absolute.path),
      uploadMedia: driveV3.Media(file.openRead(), file.lengthSync())
  );
}

В документации Цитирую:

ID родительских папок, содержащих файл. Если не указано в запросе на создание, файл будет помещен непосредственно в папку «Мой диск» пользователя. Если не указан как часть запроса на копирование, файл унаследует всех обнаруживаемых родителей исходного файла. Запросы на обновление должны использовать параметры addParents и removeParents для изменения списка родителей.

...