Ruby on Rails -URLパラメーターをクリーンアップします
-
09-10-2019 - |
質問
ユーザーが画像をアップロードすると、AmazonのS3に直接送信されるように、Railsアプリがセットアップされています。フォームコードでリダイレクトアドレスを指定する必要があります。画像のアップロードが完了した後、Amazonはユーザーをリダイレクトします www.redirect_address.com/?bucket=[BUCKET]&key=[KEY]&etag=[ETAG]
必要です bucket
と key
画像を処理するための情報ですが、ユーザーがアドレスボックスにこれらすべてのパラメーターを表示しない方法があります。私がまだそのすべての情報を得ることができ、ユーザーが見るすべての方法は www.redirect_address.com
ありがとう!
ティム
解決
ここでの良いアプローチは、xファイルアドオンの送信を介してフロントエンドのWebサーバーによるストリーミングを使用することです(参照: nginx xsendfile また apache 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
これはアプリサーバーからapache/nginxに送信されます。これにより、モジュールのリンクを上記にインストールすると、Webサーバーにファイルをクライアントに直接ストリーミングするよう指示しますが、それらのURLは通常のリクエストと同じままです。リダイレクトがないため、アプリ(/user/:id/avatarなど)に。
所属していません StackOverflow