ユーザーにコンテンツを配信するために利用できる多くのサービスがあります。私はその逆を探しています。ユーザーからコンテンツのアップロードを受信するためのサービスです。
具体的には、アップロードされるファイルが10MBから100MBの範囲であるWebアプリを構築しています。これだけのデータを受信することには多くの問題があると思いますが、私が探しているのはそれらの問題を処理するサービスです。
ユーザーにコンテンツを配信するために利用できる多くのサービスがあります。私はその逆を探しています。ユーザーからコンテンツのアップロードを受信するためのサービスです。
具体的には、アップロードされるファイルが10MBから100MBの範囲であるWebアプリを構築しています。これだけのデータを受信することには多くの問題があると思いますが、私が探しているのはそれらの問題を処理するサービスです。
Amazon S3を使用して、ユーザーからのアップロードを受信できます。ユーザーが指定されたバケットにファイルをアップロードできるようにする署名付きHTMLフォームを生成できます。ポリシードキュメントを使用して、フォームの有効期限を制御できます。
Amazon S3開発者ガイド:POSTを使用したブラウザーベースのアップロード
記事:HTMLPOSTフォームを使用したS3へのブラウザーのアップロード
2016年4月の時点で、転送アクセラレーションと呼ばれる新機能もあります。これは、ファイルアップロードの実際の「逆CDN」に精神的に近いものです。
Uploadcareは、ユーザーからのファイルや画像の受信、保存、処理、および配布の苦痛を軽減するように構築されています。試してみてください。無料のプランがあります。
WebアプリでHTML5/Flashアップローダーを使用することにより、サードパーティに支払うことなく実際にこれを解決できます。特にPlupload(無料のオープンソース)をお勧めします。これは、クライアントフロントエンド(HTML5、Flash、Silverlightなど)の選択を使用して、ブラウザーのタイムアウトをトリガーしない方法でファイルのアップロードを処理し、ユーザーがアップロードの進行状況を確認できるようにするjavascriptライブラリです(10Mb制限のデモ)。
スクリプト以外では、データを受信するためにサーバー上のバックエンドのみが必要です。PHPのMAX_FILE_SIZEやリクエストのタイムアウトなど、サーバー側のタイムアウトをトリガーする可能性のあるものには注意する必要があります。
pluploadパッケージには、フロントエンドスクリプトとバックエンドスクリプトの例が付属しているため、かなり迅速に稼働する必要があります。
pluploadを使用して80Mbファイルをアップロードしたので、動作することがわかります。通常のDSL接続では遅くなりますが、アップロードサービスはそれを免れません。