代码之家  ›  专栏  ›  技术社区  ›  Abdul-Aziz-Niazi

将文件上载到应用程序文件夹google drive v3 rest api

  •  1
  • Abdul-Aziz-Niazi  · 技术社区  · 7 年前

    由于google drive android sdk将被弃用,我打算使用docs为我的应用程序编写RESTAPI GOOGLE REST API V3 但是 storing files to app folder 您需要使用谷歌API客户端库来进行Java或其他操作。

    我只想使用RESTAPI将文件上载到appfolder,就像在这个RESTAPI中简单地/multipart/resumable上载文件一样。

    但是,使用以下请求将无法通过改装2.5.0上载文件

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Abdul-Aziz-Niazi    7 年前

    我通过删除多部分注释并将部分更改为正文来解决我的问题。 实际上,Google请求有两部分。 在第一部分中,您需要将元数据上载到此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。

    推荐文章