Google Drive API v3 更改文件的元数据

Google Drive API v3 changing metadata of file

我在更改 google 驱动器上的文件元数据时遇到问题。我有用于从驱动器下载文件的脚本,下载后我想用星号标记文件(星号 = 真)。

我找到了 v2 API 的解决方案,但它不适用于 v3,我收到错误消息“资源主体包含不可直接写入的字段”。

我阅读了 v3 的文档,但没有找到如何更改元数据的解决方案。

file = service.files().get(fileId=file_id).execute()
file['starred'] = True
service.files().update(fileId=file_id, body=file).execute()

感谢您的帮助。

您遇到的问题是您先 file.get。

file = service.files().get(fileId=file_id).execute()

这会填充完整的文件资源对象。由于更新方法使用补丁方法,它会尝试更新您发送的每个 属性,其中一些不可写。您应该只发送要更新的字段。

试试这个。

file_metadata = {'starred': true}

updated_file = service.files().update(
            fileId='id_file_in_google_drive',
            body=file_metadata ).execute()