【问题标题】:Upload Blob to azure return url将 Blob 上传到天蓝色返回 url
【发布时间】:2013-08-21 12:08:16
【问题描述】:

在 azure 中是否可能出现以下场景?:

我需要构建一个应用程序,该应用程序将根据用户提交进行一些繁重的处理并将结果作为文件返回给用户。

  1. 第 1 步:用户通过 REST 调用将数据提交到我的端点(asp.net web api)
  2. 第 2 步:Web 角色返回报告的 URL(尚未创建!)
  3. 第 3 步:我的端点将工作传递给辅助角色并完成繁重的工作(2-3 分钟)
  4. 第 4 步:辅助角色结束作业并创建报告文件并将其上传到 Azure 存储 Blob
  5. 第 X 步:如果可能,我需要知道:在第 2 步,用户拨打电话后,我需要立即将 URL 返回到尚未创建的报告中(我不希望用户等待几分钟或运行超时问题)。我知道该报告文件将是唯一的,因此我需要知道是否可以将 url 生成到尚未创建的 report123.docx 的 azure blob 存储?但是,在报告准备好 2-3 分钟后,用户将能够使用第 2 步中生成的 URL 访问该报告。

类似于:用户拨打电话后,服务将响应:这是您的报告的 url,2 分钟后返回...

【问题讨论】:

    标签: azure azure-storage azure-blob-storage


    【解决方案1】:

    当然,这是可能的。我现在可以创建很多 blob 存储 URL --- http://account1.blob.core.windows.net/Reports/john1.pdf, http://account2.blob.core.windows.net/Reports/jane3.pdf, ...

    我假设您知道要使用的存储帐户名称、容器和最终 blob 名称?如果是,只需将其以 URL 的形式返回给用户(您可以使用存储客户端 DLL 中的 GetBlobReference 来执行此操作)。您甚至可以在该 blob 中放置一个临时的虚拟报告,上面写着“报告未完成,稍后再检查”之类的内容,然后在报告完成后替换该 blob。

    但是我可以建议一个更好的方法吗?将您的 Web API 更改为异步。您的客户将提交工作,您将返回一个 ID。然后,客户端将调用另一个 API 来检查作业状态,一旦作业完成,他们将返回 URL。查看 Azure Blob 服务的 Copy Blob API(或任何 Azure 服务管理 API)作为参考点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 2014-03-27
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      相关资源
      最近更新 更多