преобразование URI содержимого в загрузку файлов

#android #kotlin #apollo-android

Вопрос:

Я получаю URI содержимого из getContent и хочу преобразовать его в FileUpload

   object upload : FileUpload(mimetype) {
    override fun contentLength(): Long {
      TODO("return contentLength here")
    }
    override fun fileName(): String? {
      TODO("return fileName to use in the multipart request here")
    }
    override fun writeTo(sink: BufferedSink) {
      TODO("write the data here")
    }
  }
 

Комментарии:

1. Используйте DocumentFile для получения длины и отображаемого имени. Используйте ContentResolver и openInputStream() для получения InputStream , чтобы использовать, чтобы получить данные для записи в BufferedSink . Это очень напоминает создание OkHttp/Дооснащение RequestBody для контента Uri , и это описано в этом сообщении в блоге и в этом сообщении в блоге .

2. как записать в буферную ссылку из входного потока

3. Это описано в обоих сообщениях в блоге, на которые я ссылался. Позвоните writeAll() по BufferedSink телефону .