rest - 如何为同一个 Azure blob 生成多个临时访问 URL?

标签 rest azure azure-storage azure-blob-storage

我们正在开发使用云中文件的不同客户端应用程序。文件必须安全地存储在具有安全授权访问的云中。此外,多个客户端应用程序必须能够同时通过临时 URL 读取这些文件。 我们尝试将其实现到 Azure 中,但遇到了以下问题: - 当您将 blob 存储在私有(private)容器中并生成共享访问 key 时,在某一时间只有一个用户可以读取该文件。该系统的工作方式如下:客户端应用程序要求 Web 服务器为该 blob 生成公共(public) URL 并将其返回以供使用。问题是,如果前一秒另一个客户端应用程序要求该服务为同一个 blob 生成公共(public) URL。在那一刻,第一个变得无法使用。 - 我们公开了容器,但我们无法保留 Blob 的永久 URL

那么,我们如何为私有(private)容器中存储的同一个 blob 生成多个临时访问 URL(共享 key 或类似的)? 在 Windows Azure 之间传输 URL 而不让其他人捕获并重复使用它的最佳实践是什么,即使是临时性的(例如 20 分钟)?有任何解决方案可以与 future 的 CDN 集成一起使用吗?

我们感谢您的帮助。 谢谢!

最佳答案

您可以为一个 blob 生成多个共享访问签名,并且它们都可以同时使用。听起来您每次生成新的共享访问签名时可能会无意中撤销旧的存储访问策略。通过保留(并且可能重新使用)旧的存储访问策略来解决问题。请参阅以下链接以获取更多信息和示例代码:

http://msdn.microsoft.com/en-us/library/windowsazure/jj721951.aspx

http://msdn.microsoft.com/en-us/library/windowsazure/ee393341.aspx

为了保护共享访问签名,您应该通过加密 channel 将其从服务器发送到客户端。为此,请使用 SSL 或类似技术。

我认为 CDN 解决方案无法帮助您满足您的要求。

关于rest - 如何为同一个 Azure blob 生成多个临时访问 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11180908/

相关文章:

java - 在 Stripe 中以编程方式创建优惠券代码

angular - 在 azure 中部署时,未在 cookie 中设置防伪 token

c# - 使用 BeginExecute 写入 Azure 表存储

azure - 为什么我的 Azure Blob 存储容器中存在重复的文件夹?

c# - Azure 存储队列中的重复检测

json - 标题或实体中的 Hateoas 链接

domain-driven-design - REST API 和 DDD

javascript - 如何捕获复选框输入

azure - 将自定义声明 "samaccountname"添加到 Azure 广告中时出现问题

azure - 如何将 Microsoft Identity Platform 与 Delphi VCL 程序结合使用?