2016-04-15 30 views
0

我一直在关注Drive API V3 Resumable Uploads Docs,并成功上传带有Resumable会话的新文件。首先发送POST请求到“https://www.googleapis.com/upload/drive/v3/files”,并指定所有标头正确指定(Content-type:“application/json; charset = UTF-8”以将元数据发送为json),然后从Response Header“Location”中检索Session URI,然后将会话URI的PUT请求以文件内容作为主体。使用uploadType Resumable更新Google Drive API V3中的现有文件内容

我试图按照文档给出的提示更新当前驱动器文件的数据,但这很混乱。引用文档:

如果请求成功,服务器将响应创建的HTTP 201以及与此资源关联的任何元数据。如果可恢复会话的初始请求是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,还是应该对会话URI的第二个请求执行?

回答

0

引述文档Migrate to Google drive API v3

所有更新操作现在使用的,而不是PUT

因此,这是怎样一个可恢复上传到现有的文件应该在V3进行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将文件发送给它。

+0

嗨路易斯,我能够成功上传到谷歌驱动器的文件,但上传的文件中缺少名称和描述等元数据信息。 第1步:https://drive.google.com/file/d/0BzM1YeSBEPCuTDNvUENKQjRicVE/view?usp=sharing 第1步反应:https://drive.google.com/file/d/0BzM1YeSBEPCuZ293ZkVaTzhjdG8/view? USP =共享 第2步:https://drive.google.com/file/d/0BzM1YeSBEPCueDA5YThRQkNCUnM/view?usp=sharing 第2步反应:https://drive.google.com/file/d/0BzM1YeSBEPCuSzVPUUNtQ3ZhZzQ/view?usp = sharing 真的很有帮助,如果你能提供一些建议。谢谢! –

相关问题