如何在数据传输完成之前拒绝文件上传?

时间:2011-02-27 17:45:53

标签: ruby-on-rails authentication file-upload bandwidth

我正在构建具有文件上载功能的Rails应用程序,只允许经过身份验证的用户上传文件。文件上载表单位于仅限成员的区域,但由于它很容易获取上载URL并尝试从脚本发布数据,因此我担心未经身份验证的文件上载提交。当然,只有在数据传输完成并且浪费了宝贵的带宽之后,上传才会被拒绝。在将整个表单提交到我的服务器之前,如何拒绝未经身份验证的文件上传?由于我无法使用脚本或CURL来控制用户,因此需要某种服务器端解决方案。我感谢任何反馈。感谢。

1 个答案:

答案 0 :(得分:0)

这是一个关于你可以做什么的简单伪代码。在执行动作之前执行before_filter(upload_form_action是上传表单页面,upload_action是接收文件的页面

allowed_to_upload应该是helper / function / etc,返回true / false,如果它是false,它将呈现403未授权,否则它只会吝啬。

before_filter :check_upload, :only => [:upload_form_action, :upload_action]

protected
  def check_upload
    render :nothing, :status => 403 and return unless allowed_to_upload
  end