2016-11-09 21 views
0

私は、ユーザーが大きなファイルをサーバーにアップロードできるWebアプリケーションを開発しています。私はこれらのファイルを保存するためにS3を使用しています。任意のサイズのファイルをアップロードできるように、私はs3manager.Uploaderを使用してマルチパートアップロードを簡単にしています。サーバーを経由せずにS3に大きなファイルをアップロード

ファイルの一部が大きくなる(〜15GB)ため、事前に設定されたURLのようなことが可能かどうかを知りたがっていますが、マルチパートのアップロードは可能ですか?サーバーにデータをアップロードしてからS3にアップロードする必要はありません。理想的には、私はちょうどPOSTをHTML形式にして、Webサーバーをファイルのプロキシとして使用しないようにするURLが必要です。

+0

[GoのAWS S3への事前署名されたPOSTアップロードを実行するにはどうすればよいですか?](http://stackoverflow.com/questions/32377782/how-to-do-a-pre-signed-post- upload-to-aws-s3-in-go) – fl0cke

+0

私はpresigned形式の 'POST'アップロードが5GB @ fl0ckeに制限されていると思われます。 –

+0

私は簡単な答えはないと思います。アマゾンはこのようなことを調整する負担がユーザに与えられるように工学的な傾向があります。 [あなたは同じ問題を議論しているこのhashicorpブログ記事](https://www.hashicorp.com/blog/consul-s3-multipart.html)を見て、彼らがそれをどのように解決したかを説明しているかもしれません(スポイラー: – nothingmuch

答えて

1

@ michael-sqlbotが正しくありました。投稿するだけで、1ファイルにつき5GBという制限があります。アップロードする前に各リクエストを保存しておくと、マルチパートアップロードを行うことができます。つまり、ファイルの分割を管理し、アップロードする前に各リクエストに署名するようサーバに依頼する必要があります。

@ fl0ckeのアドバイスに続いて、https://github.com/TTLabs/EvaporateJSを使用してアップロードを管理しました。これはすべてのファイルを管理し、各ファイルの要求に署名するためにサーバー側の機能を実装するだけです。

関連する問題