首页 > 解决方案 > 从 Azure 存储提供文件

问题描述

我有一个简单的需求,但是有很多天蓝色的选择,我不知道从哪里开始。

我在 azure 上有一个 AppService(网站),我想从中提供静态 PDF 以供下载。换句话说,网站上有一个培训页面,在这个页面上,我想有 PDF 的 url 来下载它。

但我不希望 PDF 成为 AppService 文件的一部分,我希望将它们存储起来,以便它们与网站文件分开。

这应该怎么做?

到目前为止我发现的是:Azure Blob 存储,但我不清楚如何使用带有 URL 的存储。这些示例看起来像是使用代码而不是公共 URL 进行下载。

我也看过 Azure CDN,但这似乎比我想要的要多。只需要一个简单的位置来存储和下载文件。

标签: azureazure-storage

解决方案


您可以将 Blob 容器设为公开,以便知道该链接的任何人都可以下载该文件。在这种情况下,您可以只链接到文件或从您的应用程序返回 302 重定向到链接,这也会启动下载。

另一种选择是使用 SAS 令牌。这些临时令牌是使用您的存储帐户访问密钥生成的,并附加到 URL。然后,您可以在链接中提供此最终 URL,以允许用户下载文件。在此选项中,容器可以保密,您可以控制谁可以访问什么。现在令牌只在过期之前有效(这次由您决定),因此用户可以将链接提供给另一个人,他们也可以在该时间内下载文档。

第三种选择是将文件通过您的应用程序传递给用户。从您的后端下载文件,然后将其流式传输给用户以供下载。此选项在您的后端占用更多资源,因为每次下载都会使用线程和 IO。此选项是最安全的,因为您可以控制谁可以下载什么。


推荐阅读