【发布时间】:2017-07-07 21:48:40
【问题描述】:
我正在使用 PHP Azure 库创建一个 SAS 令牌,用于在单击链接后将文件(文件存储、非 blob 和非公共)传递给经过身份验证的站点用户。该链接指向我创建 SAS 的 PHP 页面,然后发出 Location: 标头来调用下载。在最终完成下载之前,没有任何已知问题。
在所附图像中,重复了步骤 1-4。每个选择的文件都有一个。
问题在于,由于 URL 位于站点 (CDN) 外部,因此使用了 Location: $url + sas。这会改变浏览器的位置,但不会反映在浏览器中...标题将文件作为附件推送。
如前所述,用户可以继续单击原始页面上的其他下载链接,并且它们可以正常工作(这是可取的),但是当他们第一次选择同一页面上的任何链接以转到原始页面/站点上的其他位置时(如在示例中单击“主页”所示,浏览器的真实位置会显示(accountname.file.core.windows.net/etc),并且用户会收到来自 Azure 文件存储服务器的 Resource not found 错误。(显示在图表)
7.10.2017 添加了这张图片来说明使用的过程:
对于如何在不以这种方式“重置”浏览器位置的情况下从 CDN 推送 URL 下载时,我有点不知所措。我已经从本地服务器/文件多次执行此操作,但 Location: $url/SAS 方面是不同的动态。在我看来,这应该与将浏览器指向一个可公开访问的 URL 与一个推送下载的 EXE 没有什么不同,并且仍然允许用户在原始站点上说。我开始认为这应该是重定向而不是位置,但我还没有找到很多 Azure/SAS/文件存储示例来支持它。我必须在这里遗漏一些简单的东西,但它正在逃避我。
【问题讨论】:
标签: php azure file-storage