質問

ユーザーが画像をアップロードすると、AmazonのS3に直接送信されるように、Railsアプリがセットアップされています。フォームコードでリダイレクトアドレスを指定する必要があります。画像のアップロードが完了した後、Amazonはユーザーをリダイレクトします www.redirect_address.com/?bucket=[BUCKET]&key=[KEY]&etag=[ETAG]

必要です bucketkey 画像を処理するための情報ですが、ユーザーがアドレスボックスにこれらすべてのパラメーターを表示しない方法があります。私がまだそのすべての情報を得ることができ、ユーザーが見るすべての方法は 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など)に。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top