Подтвердить что ты не робот

Как загрузить файл на Google Диск

Итак, я пытаюсь загрузить текстовый файл на мой Google-накопитель из приложения Android, которое я создаю. Я узнал, как загрузить изображение из учебника Google. Кроме того, я буду использовать строки из своего приложения в текстовом файле. Потенциально, я хочу сделать это электронной таблицей. Любая помощь?

4b9b3361

Ответ 1

Читайте Быстрый старт на сайте Google Android.

Когда вы закончите со всем процессом аутентификации, перейдите к разделу Как загрузить файл на Google Drive.

редактировать

Ссылки Ссылки

Ответ 2

Я потратил на это столько времени... По моему мнению, документация... не так уж и велика.

Вот как это должно быть сделано с REST API v3. MULTIPART ЗАГРУЗИТЬ пример

1. ШАГ ПЕРВЫЙ - Создайте JSON с METADATA

Например:

data class RetrofitMetadataPart(
    val parents: List<String>, //directories
    val name: String //file name
)

а теперь создайте JSON (для этого я использовал moshi)

val jsonAdapter = moshi.adapter<RetrofitMetadataPart>(RetrofitMetadataPart::class.java)

val metadataJSON = jsonAdapter.toJson(
    RetrofitMetadataPart(
        parents = listOf("yourFolderId"), 
        name = localFile.name
    )
)

Конечно, вы можете создавать эти метаданные с различными параметрами, значениями и, конечно, по вашему усмотрению. Полный список параметров метаданных вы можете найти здесь: https://developers.google.com/drive/api/v3/reference/files/create.

2. ШАГ ВТОРОЙ - Создайте Multipart с METADATA

Мы создаем первую часть нашего запроса с соответствующим заголовком

val metadataPart = MultipartBody.Part.create(
    RequestBody.create(MediaType.parse("application/json; charset=utf-8"), metadataJSON)
)

3. ШАГ ТРЕТИЙ - Создайте Multipart с вашим ФАЙЛОМ

Создайте вторую часть нашего запроса с файлом

val multimediaPart = MultipartBody.Part.create(
    RequestBody.create(MediaType.parse("image/jpeg"), localFile)
)

4. ШАГ ЧЕТВЕРТЫЙ - запрос вызова

googleDriveApi.uploadFileMultipart(
    metadataPart,
    multimediaPart
)

и это вызывает

@Multipart
@POST("upload/drive/v3/files?uploadType=multipart")
fun uploadFileMultipart(
    @Part metadata: MultipartBody.Part,
    @Part fileMedia: MultipartBody.Part
): Completable

отправив эти два Multiparts, вы автоматически получите эти --foo_bar_baz отметки из документации

"Обозначьте каждую часть граничной строкой, которой предшествуют два дефиса. Кроме того, добавьте два дефиса после последней граничной строки".