如何将文件上传到Google云端硬盘

时间:2013-03-28 06:38:45

标签: android google-drive-api

所以我试图从我正在创建的Android应用程序上传文本文件到我的谷歌驱动器。我学会了如何从Google教程上传图片。另外,我将在文本文件中使用我的应用程序中的字符串。可能,我想把它变成一个电子表格。有什么帮助吗?

2 个答案:

答案 0 :(得分:16)

答案 1 :(得分:0)

为此我花了很多时间...我认为文档不是那么好。

这是使用REST API v3的方法。 MULTIPART上载示例

  

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。第二步-使用METADATA创建多部分

我们使用适当的标题创建请求的第一部分

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

3。第三步-使用文件创建多部分

使用文件

创建请求的第二部分
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 标记

“用边界字符串标识每个部分,并在其后加上两个连字符。此外,在最终边界字符串之后添加两个连字符。”