Google云端硬盘使用Google API上传文件

时间:2016-06-09 03:05:03

标签: google-drive-api

基于Google API上的link。由于文件较大,我想使用Multipart上传。但那有很多我不明白的事情。请高级。

基于Google API文档,使用简单上传

\\w

我尝试的内容如下,但它不起作用

POST https://www.googleapis.com/upload/drive/v3/files?uploadType=media

从Google REST链接中,它显示如下示例,如何运行?

https://www.googleapis.com/upload/drive/v3/C:\Users\RNKP74\Desktop\Full_XML.zip?uploadType=media

1 个答案:

答案 0 :(得分:1)

使用Files:insert此方法支持/上传URI并接受上传的媒体。 Official Google Documentation包含示例。

首先,将新文件元数据发布到Drive端点。它必须是File resource JSON object

的形式
POST /drive/v2/files HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer <OAuth 2.0 access token here>
...

{
"title": "file_name.extension",
"mimeType": "mime/type",
"description": "Stuff about the file"
}

响应正文将是新创建的文件资源的JSON表示。它看起来像:

{
"kind": "drive#file",
"id": string,
"etag": etag,
"selfLink": string,
"title": "file_name",
"mimeType": "mime/type",
"description": "Stuff about the file"
...
"downloadUrl": string,
...
}

这是对已创建文件条目的确认。现在您需要上传内容。为此,您需要获取上面响应中id JSON属性给出的文件的ID,并使用OAuth 2.0授权请求将实际文件的内容PUT到上载端点。它应该看起来像:

PUT /upload/drive/v2/files/{id}?uploadType=media HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer <OAuth 2.0 access token here>
Content-Type: mime/type

<file content here>

您可能还需要Resumable upload,如果您要传输大型文件并且网络中断或其他传输失败的可能性很高(例如,从移动客户端应用程序上传时),此功能尤其有用。它还可以在网络出现故障时减少带宽使用,因为您不必从头开始重新启动大文件上传。