【问题标题】:Gmail Api Resumable attachment. (Rest)Gmail Api 可恢复附件。 (休息)
【发布时间】:2018-01-16 02:58:30
【问题描述】:

有没有人有任何 Gmail Api 可恢复上传的示例(用于附件)。我成功地使用了最大 5 MB 的主要上传附件,但我想发送超过 30 MB 的附件。我无法使用 gmail SDK 来处理所有需要休息的内容有什么建议吗?

【问题讨论】:

    标签: rest attachment gmail-api


    【解决方案1】:

    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
    

    完整的代码实现示例在文档中。

    【讨论】:

    • 在第 1 步中,当我发布帖子时,我收到错误 [ "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
    • 不支持你上传的文件,我很清楚
    • 文件应该在 Raw 里面?我的意思是 base64 编码的 rfc822 应该在 Raw 里面?当我尝试发送超过 5 MB 的文件时,Raw 中的编码文件变得很大。你能给我和base64编码之前附件格式的例子吗? @noogui
    【解决方案2】:

    你需要上传PUT方法

    但不是binary body,只能使用multipart form body

    【讨论】:

      猜你喜欢
      • 2018-01-31
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 2014-11-08
      • 2016-10-06
      • 2017-07-27
      • 1970-01-01
      相关资源
      最近更新 更多