Google 驱动器 Api v3 上传到 sharedDrive 即使使用 supportsAllDrives=true 也无法正常工作

Google Drive Api v3 upload to sharedDrive not working even with supportsAllDrives=true

我正在尝试将图像上传到共享云端硬盘中的文件夹。我设法在“我的云端硬盘”上做到了这一点,但是当我试图在共享云端硬盘上实现这一点时,我收到以下错误:

{
  "error": {
    "code": 404, 
    "message": "File not found: 1ZQuuXVDx3I5rs6OnH8WvbWfo6HplnfW8.", 
    "errors": [
      {
        "locationType": "parameter", 
        "domain": "global", 
        "message": "File not found: 1ZQuuXVDx3I5rs6OnH8WvbWfo6HplnfW8.", 
        "reason": "notFound", 
        "location": "fileId"
      }
    ]
  }
}

这让我很抓狂,因为我已经阅读了很多次文档,但找不到解决方案。我试过 Android 和 RetrofitPostman,甚至 Google 提供的 OAuth2 Playground

请求是这个,复制粘贴自 OAuth2 Playground:

POST /upload/drive/v3/files?uploadType=multipart HTTP/1.1
Host: www.googleapis.com
Content-length: 50295
Content-type: multipart/related; boundary="===============323232404548=="
Authorization: Bearer ya29.a0AfH6SMBHmEo0Q9-8dXhhCY7wGrTj9PsFTCd0YUdLtyGJSfdO
--===============323232404548==
Content-type: application/json

{
   "supportsAllDrives": true,
   "driveId":"0APRAdsf3Sdfsk9PVA",
   "name":"test.jpeg",
   "parents":[
      "1ZQuuXVDx3I5rs6OnH8WvbWfo6HplnfW8"
   ]
}
--===============323232404548==
Content-type: image/jpeg

到底是什么问题?我也尝试过使用 driveIdsupportsAllDrives 到请求的 header。

非常感谢您的帮助。我关注的链接:

https://developers.google.com/drive/api/v3/manage-uploads#multipart and https://developers.google.com/drive/api/v3/reference/files/create

document中所示,supportsAllDrives是一个查询参数。这意味着它应该包含在 URI 而不是请求正文中。

发件人:

https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart

收件人:

https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&supportsAllDrives=true

如果查询参数中不包含 supportsAllDrives,则默认值为 false。这会导致您的响应显示“找不到文件”消息,因为它无法找到或访问共享驱动器。