Railsアプリにredirect_toがあり、エンドポイントにアクセスしてビデオをZencoderに送信し、いくつかの異なる形式にエンコードします。
ビューにリダイレクトするredirect_toを取得した直後。ビューへのリダイレクトが速すぎるため、ビューがZencoder URLの最初のリクエストを行うと、404 がスローされます。更新時のリクエストは200です
次のいずれかを行います。
リダイレクトを一時的に遅らせて、404 が発生しないようにする (簡単)
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