Google 使用未命名的名称驱动上传

Google drive upload with untitled name

可能这是一个重复的问题,但我没有得到任何成功的答案。

我正在尝试将一些文件上传到 google 驱动器。它正在成功上传,但文件名仍然是 "Untitled"。下面是我在 curl 和 python requests

中尝试过的内容

卷曲

curl -X POST -H 'Content-Type:*/*' 
    -H 'Authorization: Bearer <The access token>' 
    -H 'Content-Length:125' 
    --upload-file 'foo.txt' 
    'https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart' 
    -d '{"title":"foo.txt","description":"test file"}'

在这里尝试 Content-Type:multipart/related; boundary="foo_bar_baz" 时抛出错误说 "use multipart" 而只尝试 "multipart" 时说使用 "/" 。上传文件的任何方式,但名称为 "Untitled"

下面是 python 请求中的相同内容:

upload_files = requests.post(
  'https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart',
  headers={'Authorization':'Bearer {}'.format(access_token),
           'Content-Type':'*/*', 
           'Content-Length':file_size},
  data={"title":file_name,
        "mimeType": "*/*",
        "parents": [{"id":"root"}],
        "description": "mypdf.pdf"},
  files={'file':file},

)

请不要投反对票,如果我犯了一个愚蠢的错误,请发表评论。我会检查它。在我的情况下,我无法使用 google 驱动器客户端 非常感谢您花时间检查我的问题。

您没有正确构建多部分正文。有关示例,请参阅 https://developers.google.com/drive/web/manage-uploads#multipart

POST /upload/drive/v2/files?uploadType=multipart HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer your_auth_token
Content-Type: multipart/related; boundary="foo_bar_baz"
Content-Length: number_of_bytes_in_entire_request_body

--foo_bar_baz
Content-Type: application/json; charset=UTF-8

{
  "title": "My File"
}

--foo_bar_baz
Content-Type: image/jpeg

JPEG data
--foo_bar_baz--