Rails rails 如何做动态限时下载链接呢?

icemark · 2012年04月30日 · 最后由 anylei 回复于 2012年04月30日 · 3279 次阅读

有些收费的下载链接需要动态链接,而且限时,过期就不能下载 有 gem 支持吗?

或者大家有较好的设计方案呢?

数据库里面存 token 和过期时间,action 中检查,通过则 send_file send_data,不通过则返回 forbidden

恩,谢谢反馈,我自己也是这么想的,如果没有更好的方法就用这种

直接 send 这会很悲剧吧。

面向独立用户的我做过是这样的:先根据客户端特征及预设过期时间拼出带 token 的“下载链接”(具体的规则我忘记了,那时候用的还是.NET,- -),请求时效验合法则跳转到真实下载地址。另外为了真实地址永久有效会有一个机制,隔一段时间双向更新真实地址。这样 web server 只做验证,其他 server 只做下载。

这方法不一定适用,毕竟要看需求。

#3 楼 @anylei http://apidock.com/rails/ActionController/Streaming/send_file 现在应该会自动用 X-sendfile 了,由静态服务器处理文件发送。我还没试过

#4 楼 @Rei 确实,这样就省事多了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号