Google 驱动器 API 分段上传导致文件损坏

Google Drive API multipart upload gets file corrupted

我一直在尝试使用 Google 驱动器 API 上传文件,但我遇到了一个问题,我似乎找不到答案。 上传图片的时候出现这种情况,有文本文件,好像没问题。

按照此处的文档操作:https://developers.google.com/drive/api/v3/manage-uploads 我需要像这样形成请求

我已经从 POSTMAN 或 Salesforce Apex 尝试过,但遇到了同样的问题。

我正在发送编码为 Base64 的图像,但图像未在 Google 驱动器端解码,因此问题是没有预览且无法打开文件。如果我下载文件并在文本编辑器上打开它,内容只是文本。

这是从 VS Code 打开的图像

我认为您正在尝试上传 base64 数据。那么这个修改怎么样呢?

修改后的请求正文:

POST https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart HTTP/1.1
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

{
  "name": "myObject"
}

--foo_bar_baz
Content-Type: image/jpeg
Content-Transfer-Encoding: base64   <--- Added this.

[JPEG_DATA]
--foo_bar_baz--
  • 请在数据部分添加Content-Transfer-Encoding: base64

参考:

如果这不能解决您的问题,我深表歉意。