Копирование файла с Drive API v3 не меняет название или местоположение - PullRequest
0 голосов
/ 02 февраля 2020

Я пытаюсь использовать v3 Drive API для копирования файла. Несмотря на то, что мне удалось получить копию создаваемого файла, ни заголовок, ни местоположение скопированного файла не изменились, как я надеялся. Глядя на фрагменты кода, доступные в Интернете, я не уверен, что не так с моим кодом, поэтому любая помощь будет принята с благодарностью.

def copy(service, file_id, dest_id): #Drive service, id of file to be copied, id of destination folder
    service.files().copy(
        fileId=file_id,
        supportsAllDrives=True,
        body = {
                'title':'copiedFile',
                'parents' : [ {'kind':"drive#fileLink",
                                'id': dest_id}],
                }
        ).execute()

1 Ответ

0 голосов
/ 02 февраля 2020

Сначала необходимо скопировать файл, а затем обновить его, сначала удалив текущих родителей, а затем добавив идентификатор новой родительской папки. Вот фрагмент кода, который должен сработать:

copy = (
    service.files()
    .copy(
        fileId=file_id,
        body={"title": "copiedFile"},
    )
    .execute()
)

service.files().update(
    fileId=copy.get("id"),
    addParents=dest_id,
    removeParents=copy.get("parents"),
    fields="id, parents",
).execute()
...