Загрузить файл в папку приложения Google Drive v3 REST API - PullRequest
0 голосов
/ 22 января 2019

Поскольку Google Drive Android SDK устареет, я собирался написать rest apis для своего приложения, используя Документы на GOOGLE REST API V3 , но , сохраняя файлы в папке приложения , вам нужно использовать клиентскую библиотеку google-api для java или др.

Я хочу загружать файлы в папку приложения, используя rest apis, так же, как Simple / Multipart / Resumable выгрузка файлов в этом остальные apis.

Но файлы не будут загружаться при использовании следующего запроса с модификацией 2.5.0

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

Загруженные файлы изображений повреждены, а текстовые файлы имеют дополнительное содержимое.

1 Ответ

0 голосов
/ 24 января 2019

Я решил свою проблему, удалив составную аннотацию и изменив деталь на тело. На самом деле запрос Google состоит из 2 частей. В первой части вам необходимо загрузить метаданные на этот URL

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

используя следующий POST запрос

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

Это создаст метаданные файла и вернет имя вместе с идентификатором файла. Далее нужно отправить еще один запрос, но на этот раз методом PATCH

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

Используя идентификатор файла из предыдущего запроса, создайте двоичный запрос, подобный этому

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

И создайте тело запроса, как это

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

Наконец содержимое файла будет загружено на указанный идентификатор.

...