php - 使用私有存储桶授权的 Backblaze Storage B2 PHP 下载
问题描述
我有点难以理解 BackBlaze B2 的文档,我想使用 PHP 从私有存储桶下载文件,我知道文件 ID,我想获得授权(比如 30 秒),然后生成一个下载链接(预签名?)。
- b2_authorize_account
- b2_get_download_authorization
- b2_download_file_by_name
我只是不太确定如何将示例代码放在一起,请原谅我的无知。
解决方案
我也花了一段时间寻找这个问题的答案。显然这是可能的。
基本上步骤如下:
- 在服务器上,向 b2_authorize_account 端点发出 GET 请求,以获取身份验证令牌 ( https://www.backblaze.com/b2/docs/b2_authorize_account.html )
- 同样在服务器上,向 b2_get_download_authorization 端点发出 POST 请求,以获取仅用于下载的更具体的身份验证令牌 ( https://www.backblaze.com/b2/docs/b2_get_download_authorization.html )
- 通过将步骤 1 中的 apiUrl 与特定文件的路径组合起来形成下载 URL,然后将步骤 2 中的令牌附加为查询参数(这是在他们的文档中很难找到的部分)。
- 将下载 URL 发送到浏览器,用户可以单击它访问文件。
所以你会得到类似的东西
https://api001.backblazeb2.com/file/bucket-name/path/to/file?Authorization={token}
您可以限制身份验证令牌有效的时间长度,并将其限制为只能访问具有特定前缀的文件。因此,如果您想让一个特定的私有文件对您已经过身份验证的特定用户可用,您可以使用这些步骤生成一个仅适用于特定文件的生命周期较短的令牌(通过使用完整的文件名作为前缀)。
推荐阅读
- r - ggplot2 图的子集数据
- git - Git 和 Chef 最佳实践
- python - Python 子进程 nbtstat “找不到文件”
- google-cloud-platform - 上传的文件夹不显示
- kubernetes - 启用 ExpandPersistentVolume
- debugging - 为什么我在使用 Xtensa Tensilica OCD 时收到“调试域已关闭”错误消息?
- bash - macOS bash/terminal 命令打开终端,更改目录并运行命令
- javascript - 使用不同的变量名
- ibm-bpm - 根据某些条件在 IBM BPM 表列中添加下拉列表
- django - 一条路线的 CSRF 令牌丢失或不正确,而另一条路线则没有