从 public 网站上传文件到个人 Dropbox 而不暴露私钥

Upload file to personal Dropbox from public website without exposing private key

我收到要在我的网站上处理的图像,我想省略上传到本地服务器并通过从 Web 浏览器直接上传到 Dropbox 进一步添加到 Dropbox 文件夹。

Dropbox API 非常简单,但有一个问题 - 我需要向最终用户公开 API 密钥,并且该密钥允许从我的帐户下载所有图片。 然后如果我使用 Dropbox API - 一个用户可以下载其他人上传的图片,这是不可接受的情况。

有没有办法通过向网站最终用户公开完全访问 API 密钥来绕过限制?

很遗憾,不可以,为了通过 Dropbox API 直接上传到 Dropbox,客户端需要访问令牌。此外,Dropbox API 不提供仅上传权限。

从根本上说,客户端无法保密,因此任何存在于客户端(在本例中为浏览器中)的访问令牌都可以被提取和滥用。


编辑: Dropbox API 现在提供一些新功能,可能对这里有用:

A) Dropbox API 现在提供“作用域”,您可以使用它来将应用程序或访问令牌配置为仅限一组有限的功能,例如写入但不能读取文件的能力。

您可以在我们的博客 post 中找到有关此版本的更多信息:

https://dropbox.tech/developers/now-available--scoped-apps-and-enhanced-permissions

B) Dropbox API 现在提供 /2/files/get_temporary_upload_link 端点,可用于获取客户端可以 POST 进入的 URL为了上传到没有访问令牌的 Dropbox 帐户:

https://www.dropbox.com/developers/documentation/http/documentation#files-get_temporary_upload_link