【问题标题】:Update existing file's content in Google Drive API V3 with uploadType Resumable使用 uploadType Resumable 更新 Google Drive API V3 中现有文件的内容
【发布时间】:2016-04-15 14:40:21
【问题描述】:

我一直在关注Drive API V3 Resumable Uploads Docs 并成功上传了带有可恢复会话的新文件。首先向“https://www.googleapis.com/upload/drive/v3/files”发出 POST 请求,并正确指定所有标头(内容类型:“application/json; charset=UTF-8”以将元数据作为 json 发送),然后从响应标头“Location”中检索会话 URI , 然后将文件内容作为 Body 向 Session URI 发出 PUT 请求。

我正在尝试按照文档提供的有关更新当前云端硬盘文件数据的提示进行操作,但这非常令人困惑。引用文档:

如果请求成功,服务器会以 HTTP 201 Created 以及与此资源关联的任何元数据进行响应。如果可恢复会话的初始请求是 PUT,以更新现有资源,则成功响应将是 200 OK,以及与此资源关联的任何元数据。

我发送的获取会话 URI 的请求是:

PUT /upload/drive/v3/files/{fileID}?uploadType=resumable HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer {authToken}
Content-Type: application/json; charset=UTF-8
X-Upload-Content-Type: {FileToBeSent-Content-Type}
X-Upload-Content-Length: {FileToBeSent-Content-Length}

{ "name" : "myfile.ext"}

但是我得到的响应是“未找到”,有没有办法为现有文件获取可恢复会话 URI?我是正确发送 FileID 还是应该在对 Session URI 的第二次请求时发送?

【问题讨论】:

    标签: json upload google-api drive


    【解决方案1】:

    引用文档Migrate to Google drive API v3

    所有更新操作现在都使用 PATCH 而不是 PUT

    这就是在 V3 中应该如何对现有文件进行可恢复上传:

    首先对文件 URL 的 Patch 请求:

    PATCH /upload/drive/v3/files/{fileID}?uploadType=resumable HTTP/1.1
    Host: www.googleapis.com
    Authorization: Bearer {authToken}
    Content-Type: application/json; charset=UTF-8
    X-Upload-Content-Type: {FileToBeSent-Content-Type}
    X-Upload-Content-Length: {FileToBeSent-Content-Length}
    
    { "name" : "myfile.ext"}
    

    然后按照文档中的说明正常操作,从响应中检索会话 URI 并通过 PUT 将文件发送给它。

    【讨论】:

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