我怎样才能让用户能够将他们的内容上传到我的 RoR 应用程序,但随后可以访问这些静态内容:
由 APACHE Web 服务器提供服务 [以避免通过 Rails 的开销],但是
仍然希望在他们可以访问内容之前进行身份验证/授权检查
限制是我在DreamHost共享平台上,我只能访问 Apache.htaccess
文件,不能添加自己的 Apache 模块。
您可以重定向到静态内容,例如
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
每小时更改一次文件。当然,应用程序也应该知道前缀。