BlobStoreService#createUploadUrl(String)
でアップロード用の URL が作られる
- URL は
https://{id}.appspot.com/_ah/upload/XXXXXXX
みたいな multipart/form-data
でバイナリを送る。キーは自由だしいくつも送ってもいい。- AppEngine は、リクエストがインスタンスに来る前に全てのバイナリを BlobStore にため、バイナリを除いたリクエストを
createUploadUrl(String)
に渡した URL にフォワードする(インスタンスに負荷無い) - フォワードされたリクエストからは、
getUploads()
で Map が取得出来る。Map のキーはマルチパートのキーであり、値はBlobKey
である- フォワード先のレスポンスをクライアントにそのまま返す。(Status, Body, Header)
- 400 番台とかだと失敗してるはずだが別にリトライして叩いたりはしない。
- アップロードセッションはそのうち切れる。多分10分くらい。
400 Bad Request
となる。 - 同じアップロード URL で何回でもアップロードでき、ファイルも上書きされる事は無い。
- でも、ローカルだと何故か出来ない。(
404 Session Not Found
となる)