0

Railsアプリにredirect_toがあり、エンドポイントにアクセスしてビデオをZencoderに送信し、いくつかの異なる形式にエンコードします。

ビューにリダイレクトするredirect_toを取得した直後。ビューへのリダイレクトが速すぎるため、ビューがZencoder URLの最初のリクエストを行うと、404 がスローされます。更新時のリクエストは200です

次のいずれかを行います。

  1. リダイレクトを一時的に遅らせて、404 が発生しないようにする (簡単)

  2. Zencoder リダイレクトをリッスンし、Zencoder からの応答を取得した後にのみビューにリダイレクトします

関連するコードは次のとおりです。

  def edit
    @director = Director.find(params[:id])
    @director_videos = Video.where(:director_id => @director.id)
    if params[:bucket].present?
      # process video
      key = params[:key]
      video = Video.new
      video.director_id = @director.id

      video.video_url = "https://"+Settings.S3_BUCKET + ".s3.amazonaws.com/" + URI.unescape(key)
      video.save    
      video.process
      redirect_to '/encode_progress' and return
    end
    @video_uploader = Video.new.video
    @video = Video.new
    redirect = "http://"+Settings.DOMAIN+"/directors/"+@director.id.to_s+"/edit"
    @video_uploader.success_action_redirect = redirect
  end
4

0 に答える 0