繁体   English   中英

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

[英]How to upload a file to Google Drive

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

我花了这么多时间......在我看来,文档.....不是那么好。

这是REST API v3应该如何完成的。 MULTIPART UPLOAD示例

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创建Multipart

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

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

3.第三步 - 使用您的文件创建Multipart

使用file创建请求的第二部分

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标记

“使用边界字符串标识每个部分,前面有两个连字符。此外,在最后的边界字符串后添加两个连字符。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM