【问题标题】:Python Google drive API cannot insert media file using mediaFileUploadPython Google drive API 无法使用 mediaFileUpload 插入媒体文件
【发布时间】:2016-02-12 23:12:50
【问题描述】:

我尝试将此提交给 Google 支持,但他们将我提到堆栈溢出,但在使用 python 库 googleapiclient 运行 Google Drive API 的插入函数时出现问题。

Python 损坏的 API 函数调用

当尝试按照中的说明插入 MediaFileUpload 时

https://developers.google.com/drive/v2/reference/files/insert

如何在评论中提交代码行?

更新:

http = httplib2.Http()
http = credentials.authorize(http)
service = build('drive', 'v2', http=http)
media_body = MediaFileUpload('test.csv', mimetype='application/vnd.ms-excel', resumable=True)

body = {
'title': 'test.csv',
'description': 'test description',
'mimeType': 'application/vnd.ms-excel'
}
file = service.files().insert(body=body,media_body=media_body).execute()

它实际上不起作用,您不断收到一条错误消息,说需要字符串或 MediaFile 类型 方法中的文件“/usr/local/lib/python2.7/site-packages/googleapiclient/discovery.py”,第 692 行 raise TypeError('media_filename must be str or MediaUpload.')

当文档明确说明使用 MediaFileUpload 时,有谁知道为什么 media_body 不能是 MediaFileUpload?

【问题讨论】:

  • 我有一个与此非常相似的程序,目前正在运行。你能用更多的代码更新你的问题吗?
  • 当然没问题。
  • 评论格式有点受限 - 最好是更新原始问题中的代码 sn-p。
  • 我已经更新了代码,body 和 media_body 请求有一些冗余,但应该没问题。
  • 你是如何认证的?

标签: python google-api


【解决方案1】:

来自 cmets 线程,这是最终解决问题的答案:

升级到最新的 google-api-python-client(撰写本文时为 1.4.2 版)。

【讨论】:

  • 我无法给出答案,因为我的分数太低,但感谢解决了它。我会留下代码,以防有人需要使用 Python 的 API 将文件上传到 Google Drive。
  • 是的,那个代码很有用——我以前的版本只适用于文本文件,所以它似乎可以帮助其他人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多