gpt4 book ai didi

python - 使用 Python 中的请求将文件上传到 Google 云端硬盘

转载 作者:太空宇宙 更新时间:2023-11-03 11:17:46 38 4
gpt4 key购买 nike

我正在努力通过他们的 API 将文件正确上传到 Google 云端硬盘。我正在使用 Python,我知道有一个用于 Google API 的客户端库。这是我目前拥有的。运行以下代码时,会在 Google Drive 中创建一个空的无标题文档,它不在正确的目录 root/level_1 中。我不确定我对 datafiles 对象做错了什么。代码中有什么突出的地方吗?

这是 docs我正在关注。

import json
import requests

url = "https://www.googleapis.com/upload/drive/v2/files?access_token=ACCESS_TOKEN&uploadType=multipart"
files = {"file": requests.get("image_url").content}
data = {
"title": "image_url.jpg",
"parents": ["root", "level_1"]
}

response = requests.post(url, data=json.dumps(data), files=files)
# json.loads(response.text)["title"] = "Untitled"
return response

最佳答案

这个修改怎么样?

修改点:

  • 当您使用 Drive API 时,访问 token 需要包含在 header 中。
  • 当您想将文件插入您想要的 parent 时,请使用文件夹ID。
    • 文件夹 ID 是 https://drive.google.com/drive/folders/##########
    • 如果要插入文件到根文件夹,可以使用root作为ID。

修改后的脚本:

import json
import requests

headers = {"Authorization": "Bearer " + ACCESS_TOKEN}
para = {
"title": "image_url.jpg",
"parents": [{"id": "root"}, {"id": "### folder ID ###"}]
}
files = {
"data": ("metadata", json.dumps(para), "application/json; charset=UTF-8"),
"file": requests.get("image_url").content
}
response = requests.post("https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart", headers=headers, files=files)

return response

注意事项:

  • 通过调整您的脚本来使用此修改后的脚本。
  • 请注意以下几点。
    • 在这个修改后的脚本中,从 image_url 检索到的图像文件被上传到根文件夹和 Google Drive 的 ### folder ID ### 的文件夹作为“image_url.jpg”的文件名。
    • 在这种情况下,“image_url.jpg”有 2 个父项。所以当其中一个被删除时, parent 双方的文件也被删除。
  • 当您使用此脚本时,请再次确认以下两点。
    • Drive API 是否启用。
    • 访问 token 是否包含将文件上传到 Google 云端硬盘的范围。

如果我误解了你的问题,我很抱歉。

关于python - 使用 Python 中的请求将文件上传到 Google 云端硬盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48715409/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com