【发布时间】:2018-01-16 02:58:30
【问题描述】:
有没有人有任何 Gmail Api 可恢复上传的示例(用于附件)。我成功地使用了最大 5 MB 的主要上传附件,但我想发送超过 30 MB 的附件。我无法使用 gmail SDK 来处理所有需要休息的内容有什么建议吗?
【问题讨论】:
标签: rest attachment gmail-api
有没有人有任何 Gmail Api 可恢复上传的示例(用于附件)。我成功地使用了最大 5 MB 的主要上传附件,但我想发送超过 30 MB 的附件。我无法使用 gmail SDK 来处理所有需要休息的内容有什么建议吗?
【问题讨论】:
标签: rest attachment gmail-api
Gmail API Resumable Upload
使用可续传的步骤包括:
第 1 步:开始可恢复会话
要启动可恢复上传,请向方法的 /upload URI 发出 POST 或 PUT 请求,并添加查询参数 uploadType=resumable,例如:
POST https://www.googleapis.com/upload/gmail/v1/users/userId/messages/send?uploadType=resumable
对于这个发起请求,正文要么是空的,要么只包含元数据;您将在后续请求中传输要上传的文件的实际内容。
第 2 步:保存可恢复会话 URI
如果会话发起请求成功,API 服务器会返回 200 OK HTTP 状态码。此外,它还提供了一个 Location 标头,用于指定您的可恢复会话 URI。 Location 标头(如下例所示)包含一个 upload_id 查询参数部分,该部分提供用于此会话的唯一上传 ID。
示例:可恢复会话启动响应
这是对第 1 步中请求的响应:
HTTP/1.1 200 OK
Location: https://www.googleapis.com/upload/gmail/v1/users/userId/messages/send?uploadType=resumable&upload_id=xa298sd_sdlkj2
Content-Length: 0
第 3 步:上传文件
要上传文件,请向您在上一步中获取的上传 URI 发送 PUT 请求。上传请求的格式为:
PUT session_uri
完整的代码实现示例在文档中。
【讨论】:
[ "error": { "errors": [ { "domain": "global", "reason": "badContent", "message": "Media type 'application/octet-stream' is not supported. Valid media types: [message/rfc822]" } ], "code": 400, "message": "Media type 'application/octet-stream' is not supported. Valid media types: [message/rfc822]" }'],请求正文为空,授权标头为 Bearer my_ath_token。 @noogui
你需要上传PUT方法
但不是binary body,只能使用multipart form body
【讨论】: