首页 > 解决方案 > 使用私有存储桶授权的 Backblaze Storage B2 PHP 下载

问题描述

我有点难以理解 BackBlaze B2 的文档,我想使用 PHP 从私有存储桶下载文件,我知道文件 ID,我想获得授权(比如 30 秒),然后生成一个下载链接(预签名?)。

  1. b2_authorize_account
  2. b2_get_download_authorization
  3. b2_download_file_by_name

我只是不太确定如何将示例代码放在一起,请原谅我的无知。

https://www.backblaze.com/b2/docs/downloading.html

标签: phpcurldownloadb2

解决方案


我也花了一段时间寻找这个问题的答案。显然这是可能的。

基本上步骤如下:

  1. 在服务器上,向 b2_authorize_account 端点发出 GET 请求,以获取身份验证令牌 ( https://www.backblaze.com/b2/docs/b2_authorize_account.html )
  2. 同样在服务器上,向 b2_get_download_authorization 端点发出 POST 请求,以获取仅用于下载的更具体的身份验证令牌 ( https://www.backblaze.com/b2/docs/b2_get_download_authorization.html )
  3. 通过将步骤 1 中的 apiUrl 与特定文件的路径组合起来形成下载 URL,然后将步骤 2 中的令牌附加为查询参数(这是在他们的文档中很难找到的部分)。
  4. 将下载 URL 发送到浏览器,用户可以单击它访问文件。

所以你会得到类似的东西 https://api001.backblazeb2.com/file/bucket-name/path/to/file?Authorization={token}

您可以限制身份验证令牌有效的时间长度,并将其限制为只能访问具有特定前缀的文件。因此,如果您想让一个特定的私有文件对您已经过身份验证的特定用户可用,您可以使用这些步骤生成一个仅适用于特定文件的生命周期较短的令牌(通过使用完整的文件名作为前缀)。


推荐阅读