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()
我在更改 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()