GAEでファイルをアップロードするとき、セッションなんてなかった
結局URLを作るときに、パラメータを渡すことで逃げることにしました。
ファイルのアップロードは他とは違うという事情があるから仕方ないのは仕方ないのですが、セッションが使えないのはすごくつらいところがあります。
仕方ないので、今ログインしているユーザーの情報を特定できるキーを含めたURLを作ることで対処しました。
# ファイルをアップロードして、BlobStoreに保存するハンドラー class UploadHandlerblobstore_handlers.BlobstoreUploadHandler): def post(self, userkey): upload_files = self.get_uploads('file') # 'file' is file upload field in the form user = User.get_by_id(int(userkey)) # あとはよしなにやる #ファイルをアップロードするフォームを表示するハンドラー class FileUploadHandler(BaseRequestHandler): def get(self): upload_url = blobstore.create_upload_url('/upload/%d' % self.current_user.key.id()) self.render('update_form.html', {'update_url': upload_url})
セキュリティ的に大丈夫なのか怪しいのですが、リダイレクトされるURLはIDとは違うハッシュのような何かになっているので、大丈夫なのかな…