【问题标题】:How to use azure logic app action to download files in browser如何使用 Azure 逻辑应用操作在浏览器中下载文件
【发布时间】:2019-03-11 02:40:54
【问题描述】:

我最初创建了一个逻辑应用程序,该应用程序将在给定 JSON 有效负载的情况下运行存储过程,将结果转换为 CSV 表,然后将 CSV 通过电子邮件发送到指定的电子邮件帐户。不幸的是,要求略有变化,他们希望将其直接下载到浏览器中,而不是通过电子邮件发送 csv。

我无法获取 HTTP 响应操作来告诉浏览器使用 Content-Disposition 标头下载文件。看起来这是从设计请求中提取出来的。有没有人知道另一个动作(可能是一个函数?)可以用来代替 HTTP 响应来让 Web 浏览器下载文件而不是在响应正文中将其作为文本返回?

【问题讨论】:

  • 我建议您将 CSV 放在 blob 存储中并返回 sas 令牌或 sas url,以便用户可以从该 url 下载文件
  • 感谢您的建议,但遗憾的是我无法指定返回结果的类型。虽然返回 URL 是个好主意,但要求是在浏览器中直接下载
  • 您可以将响应重定向发送到此网址,以便直接下载。

标签: azure azure-functions azure-logic-apps


【解决方案1】:

由于某种原因,响应操作似乎确实不支持 Content-Disposition 标头。可能最简单的解决方法是通过启用 CORS 的简单 HTTP 触发 Azure 函数(或服务器上的 API)代理请求,该函数仅从逻辑应用程序中获取文件,然后将其返回并附加 Content-Disposition 标头。

注意。不要依赖<a download="filename"> - 大多数支持下载属性的浏览器只尊重同源请求。

【讨论】:

  • 感谢您的建议。我希望有一条更简单的路径可以保留逻辑应用程序中包含的所有内容,但似乎情况并非如此。由于看起来我需要创建一个函数来处理其中的至少一部分,因此我很可能只是将所有内容都放在 azure 函数本身中以保持简洁。
猜你喜欢
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多