通过支持部分下载的控制器提供文件服务
我需要通过 grails 提供文件,只有具有权限的用户才能访问,所以我无法通过容器的静态链接来提供它们。系统能够毫无问题地将二进制文件流式传输到客户端,但现在(对于客户端上的带宽性能问题)我需要在控制器中实现分段或部分下载。
有一个插件或经过验证的解决方案可以解决这个问题吗? 可能是某种 tomcat/apache 插件,用于限制对具有某些规则或临时票证的文件的访问,以便我可以将“恢复下载”或“分段下载”问题委托给容器。
我还需要记录并保存用户下载的统计数据。 我需要良好的性能,所以我认为在控制器中这样做不是一个好主意。
抱歉英语不好。
I need to serve files through grails, only users with permission have access, so I cant serve them with a static link to a container. The system is able to stream binary files to the client without problems,but now (for bandwidth performance issues on the client) I need to implement segmented or partial downloads in the controllers.
Theres a plugin or proven solution to this problem?
May be some kind of tomcat/apache plugin to restrict access to files with certain rules or temporal tickets so I can delegate the "resume download" or "segmented download" problem to the container.
Also i need to log and save stats on the downloads of the users.
I need good performance so, I think doing this in the controller is not good idea.
Sorry bad english.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有一个用于apache的插件 - https://tn123.org/mod_xsendfile/在这种情况下,你在 apache 后面使用什么并不重要。通过使用此插件,您将使用特殊标头
X-SENDFILE
进行响应,其中包含要提供的文件的路径,Apache 将负责当前请求的实际文件下载。如果您使用 Nginx,则必须使用
X-Accel-Redirect
标头,请参阅 http ://wiki.nginx.org/XSendfileThere is a plugin for apache - https://tn123.org/mod_xsendfile/ It doesn't matter what you're using behind apache at this case. By using this plugin you will respond with special header
X-SENDFILE
, with path to file to serve, and Apache will take care about actual file downloading for current request.If you're using Nginx, you have to use
X-Accel-Redirect
header, see http://wiki.nginx.org/XSendfile