【问题标题】:Upload image from URL through Drive API通过 Drive API 从 URL 上传图片
【发布时间】:2019-02-16 06:51:09
【问题描述】:

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

我正在尝试将 API 上传到 URL 中的图像。我正在使用documentation link 中描述的分段上传,但我不清楚该示例,我可以上传带有我正在传递的元数据的文件,但是我放置的 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--

【问题讨论】:

  • 文件无法通过 URL 直接上传到 Google Drive。不幸的是,没有 API 可以直接实现这种情况。为了从 URL 上传文件,首先需要从 URL 下载文件并使用 Drive API 将文件上传到 Google Drive。或者我认为您可以使用 Google Apps 脚本创建一个 API 来实现您想要的,然后从外部使用该 API。

标签: http google-api google-drive-api postman


【解决方案1】:

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

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

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

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--

【讨论】:

  • 感谢您的回复,我的朋友!基本上我需要的是通过 API 将图像发送到谷歌驱动器,我正在使用 Postman 来了解我将如何执行我的 HTTP 请求,因为我正在使用 Node-Red 构建一个应用程序,并且我有javaScript 语言和一些节点发出 HTTP 请求。我已多次阅读 Google 云端硬盘文档,但仍然无法理解如何上传图片,您能在我正在处理的上下文中指导我吗?
  • 如果您使用 javascript,您应该查看 Google apis js 客户端库,它应该能够为您处理上传。不建议在原始 http 中这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多