首页 > 解决方案 > 通过 Drive API 从 URL 上传图片

问题描述

我正在使用 Postman 来学习如何使用 Google Drive API。

我正在尝试将 API 上传到 URL 中的图像。我正在使用此文档链接中描述的分段上传,但我不清楚该示例,我可以上传带有我正在传递的元数据的文件,但我放置的 URL 的图像没有被发送。

请帮助我理解我做错了什么。以下是我的请求的代码。

POST /upload/drive/v3/files?uploadType=multipart HTTP/1.1
Host: www.googleapis.com
Content-length: *
Authorization: [myToken]
Content-Type: multipart/related; boundary=test
Cache-Control: no-cache
Postman-Token: [postmanToken]

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

{
  "name": "imageTest",
  "parents": ["1Ij0ZR8yrubkHQaT6tSQNgK6AhW4gbP49"]
}

--test
Content-Type: image/*

https://download.shutterstock.com/gatekeeper/W3siZSI6MTUzNjcwMzQ0NSwiayI6InBob3RvLzEwMDcwNjYwMjMvaHVnZS5qcGciLCJtIjoxLCJkIjoic2h1dHRlcnN0b2NrLW1lZGlhIn0sInR3UkJ0bDZNYUJNUXJ2azZlaE9MbTZlT2VBbyJd/shutterstock_1007066023.jpg
--test--

标签: httpgoogle-apigoogle-drive-apipostman

解决方案


我怀疑您是否能够使用 Postman 上传文件。它必须先读取文件,然后分块发送文件数据。

谷歌为此提供的所有示例都是使用编程语言,没有直接使用 HTTP 调用文件上传的示例

如果它确实有效,你会看到这样的东西。您仍然需要一些语言来读取文件内容并将其添加到其中。

POST / HTTP/1.1
[[ Less interesting headers ... ]]
Content-Type: multipart/form-data; boundary=---------------------------735323031399963166993862150
Content-Length: 834

-----------------------------735323031399963166993862150
Content-Disposition: form-data; name="text1"

text default
-----------------------------735323031399963166993862150
Content-Disposition: form-data; name="text2"

aωb
-----------------------------735323031399963166993862150
Content-Disposition: form-data; name="file1"; filename="a.txt"
Content-Type: text/plain

Content of a.txt.

-----------------------------735323031399963166993862150
Content-Disposition: form-data; name="file2"; filename="a.html"
Content-Type: text/html

<!DOCTYPE html><title>Content of a.html.</title>

-----------------------------735323031399963166993862150
Content-Disposition: form-data; name="file3"; filename="binary"
Content-Type: application/octet-stream

aωb
-----------------------------735323031399963166993862150--

推荐阅读