【问题标题】:pydrive: RedirectMissingLocation: Redirected but the response is missing a Location: headerpydrive: RedirectMissingLocation: 重定向但响应缺少 Location: 标头
【发布时间】:2020-03-04 19:16:58
【问题描述】:

我需要用新文件覆盖谷歌驱动器文件夹中的现有文件。这就是我所拥有的。

file = drive.CreateFile({'id': <id_of_file_which_I_wish_to_overwrite>})
file.SetContentFile(<my_file_path>)
file.Upload()
print('title: %s, mimeType: %s' % (file5['title'], file5['mimeType']))

我不断收到来自 file.Upload() 行的错误,例如:

RedirectMissingLocation: Redirected but the response is missing a Location: header.

对造成这种情况的原因有任何想法吗?这个位置是什么或标题?我注意到当我在没有 file.SetContentFile 的情况下运行相同的代码时没有收到此错误,而是仅更改文件元数据而不是覆盖它。

【问题讨论】:

  • 您好@user10467920,您的项目使用了哪些库?干杯!
  • 嗨@ale13,我正在使用以下内容: from pydrive.auth import GoogleAuth 和 from pydrive.drive import GoogleDrive 我的身份验证似乎工作正常,因为我之前在其他项目上使用过该设置。只有当我运行 f.Upload() 方法时才会收到错误消息。
  • 所以问题似乎是我试图上传到谷歌驱动器上的文件的大小。运行与我上面给出的代码完全相同的东西,它适用于文件中相同数据的一个小得多的子集。我的原始文件很大(几百万条记录),所以它抛出了 RedirectMissingLocation 错误。我发现错误消息并没有真正提供信息/描述实际发生的事情。无论如何,我的问题现在解决了。

标签: google-drive-api pydrive


【解决方案1】:

你知道,PyDrive 是 google-api-python-client 的包装库。

根据this issue,google-api-python-client 和 httplib2 之间存在一些问题。

所以尝试安装 0.15.0 版本的 httplib2。 pip install httplib2==0.15.0

【讨论】:

    【解决方案2】:

    您应该查看正在上传到 Google 云端硬盘的文件大小,因为您收到了 RedirectMissingLocation 错误。

    运行上面的代码适用于文件中相同数据的小得多的子集。

    【讨论】:

    • 你说得对,我用较小的文件进行了测试,我可以将它发送到 GCP。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多