1

こんにちは私は、ユーザーがアプリケーションサーバーにイメージをアップロードし、次にサーバーをamazon s3にアップロードしてデータベースを更新するモバイルアプリケーション用のREST APIを開発中です。nodejsアップロードされたファイルを直接待ち時間なしでS3に転送

問題:

1.User wants to upload 10MB file It takes 10 seconds to travel from user's device to my server 
2.After server has received last bit, it starts uploading to S3. Another 10 seconds. 
3.After 20 seconds in total, user is presented with hyperlink. 

私はこれらの20秒が12かそこらに、半減させることができると思います。 Nodejsが最後のビットが到着した後ではなく、最初のビットがユーザから到着した後でないS3へのアップロードを開始するほどスマートだった場合、すべてのファイルがアップロードされるのを待つのではなく、オンザフライでストリーミングを開始します。

これは可能ですか?

答えて

2

あなたはノードサーバーをまったく経由しないでユーザーがS3に直接アップロードできるように、署名済みのS3 URLをユーザーに送信する必要があります。

はここを参照してください:あなたはあなたのAPIが代わりにS3に直接ファイルをアップロードすることができるときS3に最初EC2にしてからファイルをアップロードする必要がある理由http://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html

+0

ありがとう@ at0mzk u saved my day –

0

私はわかりません。

また、node.jsはスマートで、到着時にデータを処理できるようになっています(例えば、busboyon('file')イベントを参照)。

S3では、managed uploaderを使用して、可能な場合はマルチパートアップロードを実行するために、設定可能な並行性の量を使用して未知のサイズのストリームをアップロードできます。

管理アップローダは、可能な場合、マルチパートアップロードを実行する並行処理 の設定量を用いて、 バッファ、ブロブ、またはストリームの簡単かつ効率的にアップロードすることを可能にします。この抽象化も は、マルチパート アップロードの使用のために未知のサイズのストリームをアップロードすることができます。

関連する問題