http - 二郎氮文件下载

标签 http erlang nitrogen

我需要在我的氮气应用程序中提供文件下载功能。

原则上我需要像这样设置标题:

wf:header("Content-Disposition", "attachment; filename=\"" ++ Filename ++ "\""),

但现在我无法在 Nitrogen API 中找到一个函数来发送我的文件的数据 block 。

我需要分段上传文件,因为它们可能非常大,除此之外,这些文件在本地存储中不可用,但二进制数据是从其他模块获取的。所以在实践中我需要自己处理将数据 block 发送到 http 流。

任何想法,或示例如何做到这一点,可以使用什么 api 函数?

最佳答案

我能给你的最好答案是一个answered几天前在 Nitrogen 邮件列表上:

没有很好的方法来处理这个问题。 有两种方法可以解决这个问题:

1)使用底层服务器的流媒体机制(比如制作 牛仔特定的调度表,以牛仔处理程序模块为目标 处理流媒体)或雅司病输出文件。

2) 使用 cowboy,有一些 hack 可以在 simple_bridge 如果你使用牛仔。如果你的模块的 main() 函数 返回元组:{stream, StreamFun} 其中 StreamFun 是一个函数 arity 2 (fun(Socket, Transport) - Transport 是一个牧场 运输)。真的,这只是一种快捷方式,可以让您 使用 Transport:send(socket) 发送数据。我承认我没做过 这是以前的,但它应该稍微修改一下。

将此作为实际选项添加到 simple_bridge 和 Nitrogen 中 可能是值得的。

关于http - 二郎氮文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19027081/

相关文章:

c# - 在 .NET 的 HTTP 请求中传递数组值

erlang - Riak 在 Erlang 中预提交钩子(Hook)?

string - Erlang 如何从这个二进制文件 <<"a,b,c">> 中创建一个列表

linux - 在 Yaws 和 Cowboy 上自动从端口 80 重定向到端口 433

erlang - 在 Nitrogen 中包含来自 Riak 的 Erlang 客户端库

ssl - 安装 SSL 证书并运行 nitrogen webframe work over cowboy server over https

http - 错误 : universal match pattern ('/**' ) is defined before other patterns in the filter chain, 导致它们被忽略

http - 有什么方法可以保存并重新发送 HTTP 请求吗?

java - 使用 Java Servlet 进行长时间登录的最佳方式

erlang - 如何从 Elixir 中的结果获取状态代码