首页 > 解决方案 > 如何使用 JS SDK 将文件上传到 Dropbox?

问题描述

  1. 我不确定是否将文件作为数组缓冲区、dataURI 或二进制流读取。哪个会更好?

  2. 此外,这些方法不会占用大量内存并使应用程序/设备变慢,尤其是在上传 150mb 左右的大文件时?

  3. 还有一件事是文件是否会像原来一样“可打开”?示例:如果我使用其中一种方法读取 .zip 文件,然后再下载该文件,它仍会以 ZIP 格式打开吗?

由于这个类比,我部分感到困惑:我们可以轻松查看 JPG 或 PNG 文件,也可以使用它们的 dataURI(base-64)在浏览器中显示它们......但是当我们将该 base-64 字符串保存为 JPG或 PNG 文件,则无法看到图像。因此,我不明白我应该如何读取文件的内容才能将其上传到保管箱(请记住,文件也可以在 150MB 左右)并且仍然保留文件的原始状态。

假设我要上传 .mp3 或 .zip 文件。那么我应该如何使用 Javascript Dropbox SDK 将其上传到用户的保管箱帐户?

请消除这种困惑并帮助我!

谢谢!

标签: javascriptcordovadropboxphonegapdropbox-sdk

解决方案


使用Dropbox API v2 JavaScript SDK时:

  1. 上传文件时,您应该在contents参数中提供数据,例如在方法filesUpload。这目前应该支持stringBuffer

在 node here 中有一个例子

  1. 对于像这样的大文件,您应该改用上传会话,它允许您上传较小的文件:

这里有一个使用这些的例子。您可以选择制作每件作品的大小。

  1. 您上传到 Dropbox 的文件将包含您在上传调用中提供的数据。因此,如果您上传一个 zip 文件,然后稍后再次下载,它仍然是相同的格式,对于 zip 文件,这意味着您将能够解压缩它。

请注意,在上传文件数据时,您不应对文件数据应用任何额外的编码。例如,在浏览器中显示图像时,您可以对数据进行 base64 编码以使其在数据 URI 中可用,但在上传文件进行存储时不应该这样做。


推荐阅读