带有授权的Backblaze Storage B2 PHP从专用存储桶下载

时间:2019-05-21 16:20:47

标签: php curl download b2

我很难理解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

1 个答案:

答案 0 :(得分:0)

我也花了一段时间寻找答案。显然有可能。

主要步骤如下:

  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与特定文件的路径进行组合,然后将第2步中的标记附加为查询参数,形成下载URL(这是在其文档中很难找到的部分)。
  4. 将下载URL发送到浏览器,用户可以单击它来访问文件。

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

您可以限制auth令牌有效的时间长度,并对其进行限制,以便只能访问具有特定前缀的文件。因此,如果要将特定的专用文件提供给已通过身份验证的特定用户使用,则可以使用以下步骤来生成寿命短的令牌,该令牌仅适用于特定文件(使用完整的文件名作为前缀)。