0

我怎样才能让用户能够将他们的内容上传到我的 RoR 应用程序,但随后可以访问这些静态内容:

  1. 由 APACHE Web 服务器提供服务 [以避免通过 Rails 的开销],但是

  2. 仍然希望在他们可以访问内容之前进行身份验证/授权检查

限制是我在DreamHost共享平台上,我只能访问 Apache.htaccess文件,不能添加自己的 Apache 模块。

4

1 回答 1

1

您可以重定向到静态内容,例如

class ImagesController
  def show
    @image = Image.find(params[:id])
    if user_has_access_to @image
      redirect_to @image.bizarre_and_secret_image_location_that_is_served_by_apache
    else
      access_denied
    end
  end
end

当然,它不能完全保护内容。也许将静态 URL 设为临时会有所帮助:

RewriteRule ^/images/RANDOMIZED_PREFIX_HERE/(.+)$ images/SECRET_IMAGE_LOCATION/$1 [L]

...现在.htaccess每小时更改一次文件。当然,应用程序也应该知道前缀。

于 2009-09-23T11:11:18.470 回答