0

サードパーティのAPIと相互作用するRailsアプリを構築しています

ユーザーがファイルをRailsにアップロードするときは、HTTPPOSTを介してサードパーティのサイトに転送する必要があります。

場合によっては、アップロードが数百MBになることがあります。

現時点では、Net :: HTTPを使用してAPIに再投稿し、そのようにマルチパートフォームオブジェクトにアクセスしています。

@tempfile = params [:video] [:file_upload] .tempfile

これはとても遅いですが、ちょっと汚い感じがします。

これを行うためのより良い方法はありますか?

4

2 に答える 2

1

ユーザーにサードパーティのサービスに直接投稿させることは可能ですか、それともRailsスタックを介してAPIを処理する必要がありますか?理想的には、これを行うことができ、ファイルをスタックにロードしてからAPIに再投稿する必要はありません。直接投稿できない場合は、APIにストリーミングサービスがあるかどうかを確認して、ファイル全体ではなく一部を一度に送信できるようにすることをお勧めします。いずれにせよ、大きなファイルを使用すると、自分側とAPI側でタイムアウトエラーが発生し始めると思います。そのため、独自のタイムアウトを増やすか、別の種類のストリーミングファイルアップローダーを作成する必要があります。

于 2011-02-08T18:52:58.543 に答える
0

DelayedJobを使用してバックグラウンドジョブを起動します。遅延ジョブでは、railsredirect_toを試すことができます。

https://github.com/tobi/delayed_job

http://apidock.com/rails/ActionController/Base/redirect_to

于 2011-02-08T18:47:59.847 に答える