Android私が作成しているアプリからGoogleドライブにテキストファイルをアップロードしようとしています。Googleチュートリアルから写真をアップロードする方法を学びました。また、アプリをテキストファイルに保存します。スプレッドシートにしたい場合があります。
私はそのために多くの時間を費やしました...私の意見では、ドキュメントは.....それほど素晴らしいものではありません。
これは、REST API v3。MULTIPART UPLOADの例で行う方法です。
1。ステップ1-METADATAでJSONを作成する
例えば:
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。ステップ2-METADATAを使用してマルチパートを作成する
適切なヘッダーでリクエストの最初の部分を作成します
val metadataPart = MultipartBody.Part.create(
RequestBody.create(MediaType.parse("application/json; charset=utf-8"), metadataJSON)
)
3。ステップ3-FILEでマルチパートを作成する
リクエストの2番目の部分をファイルで作成します
val multimediaPart = MultipartBody.Part.create(
RequestBody.create(MediaType.parse("image/jpeg"), localFile)
)
4。ステップ4-呼び出し要求
googleDriveApi.uploadFileMultipart(
metadataPart,
multimediaPart
)
そしてこれは
@Multipart
@POST("upload/drive/v3/files?uploadType=multipart")
fun uploadFileMultipart(
@Part metadata: MultipartBody.Part,
@Part fileMedia: MultipartBody.Part
): Completable
この2つのマルチパートを送信すると、ドキュメントから-foo_bar_bazマークが自動的に取得されます
"各パーツを境界文字列で識別し、先頭に2つのハイフンを付けます。さらに、最後の境界文字列の後に2つのハイフンを追加します。"