所以我试图从我正在创建的 android 应用程序将文本文件上传到我的谷歌驱动器。我从 Google 教程中学会了如何上传图片。此外,我将在文本文件中使用我的应用程序中的字符串。潜在地,我想把它做成一个电子表格。有什么帮助吗?
问问题
45516 次
2 回答
17
于 2013-03-28T08:14:51.247 回答
1
我为此花了很多时间......在我看来,文档......不是那么好。
这就是使用 REST API v3 应该如何完成的。多部分上传示例
1. 第一步 - 使用元数据创建 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. 第二步 - 使用元数据创建多部分
我们使用正确的 Header 创建请求的第一部分
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
通过发送这两个 Multipart,您会自动从文档中获得那些--foo_bar_baz标记
“用一个边界字符串标识每个部分,前面有两个连字符。此外,在最终边界字符串之后添加两个连字符。”
于 2019-03-20T16:18:45.390 回答