从客户端上传 blob 到保管箱 javascript

Upload blob to dropbox from client-side javascript

我有一个在客户端浏览器中运行的应用程序,没有任何服务器端(提供 http/js,但没有 post 到服务器)。该应用程序被重新部署在许多服务器上(iis、apache、nginx,有时是本地主机,有时是在 Intranet 上)并使用 http(而不是 https)提供服务。在我想保存之前,我的应用程序会在客户端浏览器中生成 zip 文件和 pdf 等文件作为 blob,因此让它们在同一页面上导航离开然后返回应用程序会破坏目的;而且我不能再 post 生成的数据到保管箱了,因为它们必须重新开始...我希望能够将这些 blob 直接发送到最终用户保管箱中的文件(后来 google 驱动器)。

https://www.dropbox.com/developers-v1/dropins/saver 完全符合我的要求。它弹出。它允许用户在弹出窗口中进行身份验证。它允许用户选择他们想要放置我的文件的位置。但我无法向它发送数据 uri、base64 编码数据、字节数组或其他任何内容。它仅适用于以前保存在网络上可访问的某个位置的文件。所以它对我不起作用。

https://www.newfangled.com/direct-javascript-dropbox-api-usage/ 展示了我如何嵌入我没有的 oauth 数据。

https://blogs.dropbox.com/developers/2013/12/writing-a-file-with-the-dropbox-javascript-sdk/ 似乎应该可以工作,除了它正在尝试执行 oauth 会话并且它使用与我的应用相同的 window(这是不需要的)。

我当前正在查看的标签页(包括几年前的条目,所以事情可能已经改变了)。有些文章表明这​​是不可能的。其他文章指出这是可能的 - 我的意思是这个特定的评论 https://github.com/dropbox/dropbox-js/issues/144# 对我帮助不大。 "I'll be sure to pass this along as feedback" 也没有——它被传递了吗?给谁?

听起来 https://blogs.dropbox.com/developers/2013/12/writing-a-file-with-the-dropbox-javascript-sdk/ 中的代码对你来说工作正常,但你想在单独的浏览器中进行身份验证 window/tab。

如果是这样,我建议只更改该代码以改用 Popup auth driver