Скопировать файл в определенную родительскую папку с помощью 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() 

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

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

  • Где мой локальный хранилище приложений App Engine?
  • Ошибка 403 при подключении к Google Analytics с помощью Python 2.7.x
  • Как получить последние данные в GAE Python NDB
  • Использование статических файлов application_readable
  • GAE "no attribute" HTTPSHandler "" dev_appserver.py
  • Как импортировать модули в Google App Engine?
  • Как получить список листов (имя и «gid») в электронной таблице Google с помощью Drive API?
  • Кто-нибудь преуспел в использовании Google App Engine с Python версии 2.6?
  • Python - лучший язык программирования в мире.