以下のエラーが出た。
Error: Request Entity Too Large Your client issued a request that was too large.
これは GEA に送信するデータが制限を超えている場合に出る。
自分は 45MB くらいのファイルを form から POST したら発生。
このファイルをGCSに保存したかったんだけど・・・。
で、解決策は以下。
http://qiita.com/tomorier/items/7ee5222137651efddb33
簡単に説明すると・・・
form から直接 GCS に直接 POST できる特殊なURLを生成して、
それを form にセットする。
で、formから直接ファイルを POST する。
特殊なURLを生成する際に、
ファイルのアップロード完了通知を受け取るエンドポイントを指定できるので、
ファイルのアップロード完了のタイミングは知ることができる。
つまり、非同期になるんだね。
↑
特殊なURLを生成する際に、
ファイルのアップロード完了通知を受け取るエンドポイントを指定できる。
アップロードが完了したら、このエンドポイントにリダイレクトされる。
非同期じゃありませんでした。
ちなみに、このエンドポイントはPOSTを受けるようにしておく必要がある。
GETにすると404でリダイレクトされない。
直接 form に POST するから、
アップロード前にサーバ側で送信するデータとかファイルに対してのバリデーションはかけれないっぽい。
クライアント側(JS, ネイティブアプリ)でやってもらうか、
アップロード完了通知を受け取ってから、
GCSのファイルを読み取って、
ファイルのサイズとかチェックする感じになるっぽい・・・。