通过支持部分下载的控制器提供文件服务

发布于 2024-10-01 18:22:11 字数 302 浏览 6 评论 0原文

我需要通过 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时间海 2024-10-08 18:22:11

有一个用于apache的插件 - https://tn123.org/mod_xsendfile/在这种情况下,你在 apache 后面使用什么并不重要。通过使用此插件,您将使用特殊标头 X-SENDFILE 进行响应,其中包含要提供的文件的路径,Apache 将负责当前请求的实际文件下载。

如果您使用 Nginx,则必须使用 X-Accel-Redirect 标头,请参阅 http ://wiki.nginx.org/XSendfile

There 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文