【发布时间】:2019-12-24 22:33:03
【问题描述】:
我在将图片发布到 https://www.googleapis.com/upload/drive/v3/files?uploadType=media 时遇到问题。该文件是在我的 Google Drive 上创建的,但 jpeg 的大小始终为 35KB,因此似乎没有任何图像内容被上传。
最初我认为这是vue-google-api 中的错误,但现在怀疑这是 Google Drive API V3 的问题。当我尝试将图像直接发布到 API 时,我遇到了同样的问题。
请求
POST https://www.googleapis.com/upload/drive/v3/files?uploadType=media
Accept: */*
Accept-Encoding: gzip, deflate
Content-Type: image/jpeg
Content-Length: 26837
Accept-Language: en-ca
Authorization: Bearer ya29.Gl1pB5BN9khs33ygA9pnIbyxJYp87teqDUfm55EsEHmmPJz0...
/9j/4AAQSkZJRgABAQEASABIAAD//gAMQXBwbGVNYXJrCv/bAIQABwUFBgUFBwYGBggHBwgKEQs...
回应
HTTP/1.1 200 OK
Server: UploadServer
Content-Type: application/json; charset=UTF-8
X-GUploader-UploadID: AEnB2UrjBAKhEMI-rCdzXpfAF3rM3oBABNUVH9AnhFtoXsoRroYV3By4rVqEuU1mn_5rJ2u_msN99Z1m2r-6Lh53fAowxmQ7QGAgWr2bP6cEwfnfV9JE-Vc
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Vary: Origin, X-Origin
Date: Mon, 19 Aug 2019 17:04:18 GMT
Alt-Svc: quic=":443"; ma=2592000; v="46,43,39"
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: 118
{
"kind": "drive#file",
"id": "16dC3Fv2vKIur426INggTZ6GzDvyRUPrV",
"name": "Untitled",
"mimeType": "image/jpeg"
}
有没有人成功上传图片到Google Drive API V3?知道可能出了什么问题吗?
【问题讨论】:
-
"Content-Length: 26837" 这是正确的 jpeg 大小吗?试试base64编码吧。
-
我正在使用capacitor.ionicframework.com/docs/apis/camera 并将图像作为
base64字符串取回,然后使用parseInt(base64.replace(/=/g,"").length * 0.75)计算Content-Length。这看起来正确吗? -
如果你说你上传的字符串已经是base64编码的,那么content-length应该只是长度,你应该添加一个content-transfer-encoding头。
标签: google-drive-api