如果我有一个允许文件上传和下载的rails应用程序,我如何以编程方式限制一个人下载文件的速度?
我可以在nginx中设置它:
limit_rate 150k;
但是我应该如何以编程方式在rails中执行此操作,以便send_file
方法以较慢的速度发送文件,具体取决于他们已经下载了多少?
我应该如何跟踪他们下载了多少?
告诉我你是否认为这是一个好主意:
File
模型提供size
属性size
记录到加密的Cookie size
添加到Cookie中的整数x
个字节数。如果它大于x
,请通过此问题的第一部分开始限制。大于y
重定向到验证码,等等...... 我很乐意看到如何克服重定向到nginx的问题...
答案 0 :(得分:0)
我不会在Rails中限制下载 - 你需要将整个Rails实例捆绑更长时间。事实上,如果可能的话,我根本不会使用Ruby来提供文件。
我会设置网络服务器直接提供文件,然后重定向到那些文件。我确信你可以在nginx中为不同的虚拟目录设置不同的配置,例如,然后使用不同的下载链接以编程方式选择它们......