2010-10-19 44 views
0

我有一个Rails应用程序设置,以便当用户上传图像时,它直接发送到亚马逊的S3。我必须在表单代码中指定一个重定向地址。图像上传完毕后,亚马逊将用户重定向到www.redirect_address.com/?bucket=[BUCKET]&key=[KEY]&etag=[ETAG]Ruby on Rails - 清理url参数

我需要bucketkey信息处理图像,但有用户不希望看到在地址框中的所有这些参数的方法。我仍然可以获得所有信息并且所有用户看到的方式是www.redirect_address.com

谢谢!

回答

0

一个好这里的方法是通过一个前端Web服务器通过X中使用流式发送文件的插件(参见:nginx xsendfileapache mod_xsendfile),并在轨则有一定的作用,如:

def avatar 
    if @user.avatar? 
    response.headers["X-Accel-Redirect"] = @user.s3_avatar_url 
    head :ok 
    else 
    head :error # or display a default image , whatever you want here 
    end 
end 

而且,设置一个HTTP头X-Accel-Redirect它会从你的应用服务器,它一旦你掌握了模块的LINKD上面安装送往阿帕奇/ nginx的,whill告诉Web服务器,直接流的文件给客户端,但他们的网址保持不变作为您的应用程序的正常请求(/用户/:ID /头像或其他)因为没有重定向。