将文件上传到应用程序文件夹Google Drive v3 REST API

时间:2019-01-22 08:43:52

标签: android rest google-drive-api google-drive-android-api drive

由于Google Drive Android SDK将不推荐使用,因此我打算在GOOGLE REST API V3使用Docs为我的应用编写rest api,但是storing files to app folder您需要使用Java或其他工具的google-api客户端库

我只想使用REST API将文件上传到Appfolder,就像在REST API中简单/多部分/可恢复上传文件一样。

但是在以下版本的2.5.0升级中,文件无法使用以下请求上传

@Multipart
@PATCH
Call<DIFile> patch(@Url String endpoint,
                   @HeaderMap Map<String, String> headerMap,
                   @Part File file);

上传的图像文件已损坏,文本文件包含其他内容。

1 个答案:

答案 0 :(得分:2)

我通过删除多部分注释并将部分更改为正文解决了我的问题。 实际上,谷歌的要求分为两部分。 在第一部分中,您需要将元数据上传到该URL

https://www.googleapis.com/drive/v3/files

使用以下POST请求

{"name":"wow.gif","parents":["appDataFolder"]}

这将创建文件的元数据,并返回名称和文件的ID。 接下来,您需要发送另一个请求,但是这次是方法PATCH

https://www.googleapis.com/upload/drive/v3/files/{file-id}

使用上一个请求中的文件ID创建这样的二进制请求

    @PATCH
    Call<DIFile> patch(@Url String endpoint,
                       @HeaderMap Map<String, String> headerMap,
                       @Body RequestBody file);

并像这样创建请求正文

RequestBody body = RequestBody.create(MediaType.parse("image/*"), file);

最后,文件内容将上传到指定的ID。