【问题标题】:Update file in Google Drive with "resumable" uploadType via Google Drive API通过 Google Drive API 使用“resumable”uploadType 更新 Google Drive 中的文件
【发布时间】:2014-02-12 01:28:12
【问题描述】:

现在我正在使用适用于 iOS 的 GoogleDrive API(我不使用 Objective-C 客户端库),我只能通过“媒体”uploadType、文件数据和/或文件元数据“更新文件数据” multipart”uploadType,但我无法使用“可恢复”uploadType 更新任何内容。

通过google的API引用,请求更新文件使用方法PUT,但“可恢复”uploadType的请求在第一个请求中使用方法POST仅发送文件的元数据,第二个请求使用PUT方法发送文件数据,这个让我很困惑。谁有什么建议T_T?

【问题讨论】:

    标签: ios google-drive-api


    【解决方案1】:

    我终于做到了:

    请求 1:

    标题:

    PUT https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable
    Content-Type: application/json; charset=UTF-8
    X-Upload-Content-Type: video/mp4
    X-Upload-Content-Length: 7421411
    

    正文:

    {
       Meta-data of files to upload
    }
    

    从响应1的Location头收到upload_id后,调用第二个请求:

    标题:

    PUT https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable&upload_id=adZc...
    Content-Length: 7421411
    Content-Type: video/mp4
    

    正文:

    {
       bytes of file to upload
    }
    

    【讨论】:

    • 在哪里指定要更新的文件ID?
    【解决方案2】:

    您是使用 XMLHTTP 请求还是使用 Google Drive SDK API。请求 = gapi.client.request();和 request.exeute()。

    最重要的问题是您能否发送下一个块。使用完整的字节集进行可恢复上传有什么意义。可恢复上传的要点是使用分块。
    可以从下一个块恢复上传,即从技术上讲,在下一个块上,文件大小应该增加。如果服务器没有给我收到的字节数,我不介意。我需要知道文件是否在增加。如果文件大小增加,我可以简单地将要上传的字节偏移到文件大小的差异和我发送的数据。

    如果根据您的定义,默认支持可恢复上传。您所要做的就是使用: 'path': '/upload/drive/v2/files/'+ NewFileID,

    NewFileID 可以是任何旧的或新的文件 ID。它仍会使用新字节更新文件。

    所以,我不确定你这样做的优势是什么?您是否知道如何发送下一个块(默认为 256KB)并确认 google 驱动器上的文件大小更改为一个值: 第一个 ChunkSize + + 新 ChunkSize +

    First ChunkSize :您放置的初始块。示例 256KB :这是 Google 驱动器分配的用于存储其元数据的空间。 新的 ChunkSize:你的第二个 Chunck 大小(应该又是默认的 256KB) :这又是谷歌驱动器存储的元数据,用于存储下一个块。
    因此,在处理两者时的总大小应该 > 512KB

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 2020-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      相关资源
      最近更新 更多