Скопировать файл в определенную родительскую папку с помощью API Диска Google?

Я использую Python 2.7 и учетную запись службы, чтобы скопировать файл на Google Диск в другую папку на основе его названия. Это требует от меня выполнить пять (5!) Команд:

  1. Найдите идентификатор файла по названию. ( files().list )
  2. Найдите идентификатор родительской папки по названию ( files().list )
  3. Скопировать файл ( files().copy )
  4. Передайте право собственности на реальный счет ( files().insert )
  5. Переместитесь в родительскую папку. ( parents().insert )

Все это работает, но я хотел бы сократить количество вызовов, и сначала это означает кеширование идентификаторов, поэтому мне не нужно вызывать files().list . Следующее, что я пытаюсь сделать, и конкретно, где я нахожусь с этим вопросом, – установить родительскую папку в команде files().copy . Документация имеет необязательный параметр parents описанный следующим образом:

Коллекция родительских папок, содержащих этот файл. Установка этого поля поместит файл во все предоставленные папки. При вставке, если папки не указаны, файл будет помещен в корневую папку по умолчанию.

Хотя это не говорит, я знаю, что это означает родительский идентификатор, так как это то, что используется везде. Однако установка этого массива в клиентской библиотеке не дает эффекта: нет ошибки, и файл определенно не находится в правой папке.

 newfile = {'title': newtitle, 'parents' : [ parentFolderId ]} service.files().copy(fileId=originalId, body=newfile).execute() 

Неужели кому-то повезло с этим ? Есть что-то еще, что мне не хватает?

Бонус: передача права собственности в команде копирования? Может быть, мой служебный аккаунт мог выдавать себя за меня?

One Solution collect form web for “Скопировать файл в определенную родительскую папку с помощью API Диска Google?”

Ах, ха! Массив parents – это список объектов с полем id :

 newfile = {'title': newtitle, 'parents' : [ { "id" : parentFolderId } ]} service.files().copy(fileId=originalId, body=newfile).execute() 

Я обновлю это, если / когда я выясню, как устанавливать разрешения.

Одна странная нота здесь заключается в том, что файл по- прежнему копируется в корневой каталог диска, а также в родительские папки, которые я указываю.

Python - лучший язык программирования в мире.