我收到要在我的网站上处理的图像,并希望通过实现从 Web 浏览器直接上传到 Dropbox 来省略上传到本地服务器并进一步添加到 Dropbox 文件夹。
Dropbox API 非常简单,但有一个问题——我需要向最终用户公开 API 密钥,并且该密钥允许从我的帐户下载所有图片。然后,如果我使用 Dropbox API - 一个用户可以下载其他人上传的图像,这是不可接受的情况。
有没有办法绕过向网站最终用户公开完全访问 API 密钥的限制?
我收到要在我的网站上处理的图像,并希望通过实现从 Web 浏览器直接上传到 Dropbox 来省略上传到本地服务器并进一步添加到 Dropbox 文件夹。
Dropbox API 非常简单,但有一个问题——我需要向最终用户公开 API 密钥,并且该密钥允许从我的帐户下载所有图片。然后,如果我使用 Dropbox API - 一个用户可以下载其他人上传的图像,这是不可接受的情况。
有没有办法绕过向网站最终用户公开完全访问 API 密钥的限制?
不幸的是,不,为了通过 Dropbox API 直接上传到 Dropbox,客户端需要访问令牌。此外,Dropbox API 不提供仅上传权限。
从根本上说,客户端无法保密,因此任何存在于客户端(在本例中为浏览器)的访问令牌都可以被提取和滥用。
编辑:Dropbox API 现在提供了一些在这里可能有用的新功能:
A) Dropbox API 现在提供“范围”,您可以使用它来配置应用程序或访问令牌,使其仅限于一组有限的功能,例如写入但不能读取文件的能力。
您可以在我们的博客文章中找到有关该版本的更多信息:
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