Google Picker并下载所选文件

时间:2017-08-21 12:26:49

标签: python google-drive-api google-picker

我设法整合了谷歌选择器。现在我有了FileId和access_token。我需要在Python的后端下载所选文件。 我已经按照谷歌开发人员的文档但如果我使用python库,那么我必须再次验证用户,这在我的情况下是不合适的。 如果我能以任何格式下载文件,请赐教。

提前致谢。

1 个答案:

答案 0 :(得分:1)

这是一个非常简单的示例脚本,用于在没有Google库的情况下使用访问令牌和文件ID下载文件。如您所说,此示例假设除Google Docs之外的文件(图像和视频)。流程如下。

流程:

  1. 检索文件名和mimeType。
  2. 从检索到的文件名和mimeType创建文件名。如果文件名在Google云端硬盘上没有扩展名,则此脚本会使用mimeType将扩展名添加到文件名并保存。如果文件名在Google云端硬盘上有扩展名,则此脚本会使用原始文件名并保存。
  3. 下载文件并将其另存为创建的文件名。如果要将文件保存到特定目录,请自行设置。
  4. 示例脚本:

    import mimetypes
    import os.path
    import requests
    accessToken = "### access token ###"
    fileId = "### file id ###"
    fileInf = requests.get(
        "https://www.googleapis.com/drive/v3/files/" + fileId,
        headers={"Authorization": "Bearer " + accessToken},
    )
    filename = fileInf.json()["name"]
    temp, ext = os.path.splitext(filename)
    filename = filename if ext != "" else filename + mimetypes.guess_extension(fileInf.json()["mimeType"])
    r = requests.get(
        "https://www.googleapis.com/drive/v3/files/" + fileId + "?alt=media",
        headers={"Authorization": "Bearer " + accessToken},
    )
    with open(filename, "wb") as f:
        f.write(r.content)
    

    如果这对你没用,我很抱歉。