2012-07-05

Only tempfile.TemporaryFile is available for use

Google App EngineでDjangoを使っていると以下のエラーが出た。

Only tempfile.TemporaryFile is available for use

画像をアップロードする時に出たんだけど、何のことかよくわからなかった。

検索しても日本語情報がほとんど出てこなかったので、仕方なしに頑張って英語のサイトを読んだ。

分かったことは、おそらく画像のサイズがオーバーしているということ。

settings.pyに以下の2行を追加するとうまく行った。


FILE_UPLOAD_HANDLERS = ('django.core.files.uploadhandler.MemoryFileUploadHandler',) 
FILE_UPLOAD_MAX_MEMORY_SIZE = 3145728 # 3MBまでOK

Google App Engineは料金体系も変わったし、データストアとかいろいろめんどくさい事が多いけど、無視できない存在なので、少しは関わっていかないといけないと思う。

最近、独自ドメインでSSL通信に対応したことも、かなり大きな魅力だと思う。

Google App Engineを極めると、何か仕事を受注できるかもしれないし。

Google App EngineでDjangoを使っていて、画像をアップロードする機能を付けている人は、必ず上記の2行を追加しておきましょう。

僕も、自分で何度もテストしている時は気付かなかったんだけど、別の人にやってもらって気付きました。

ちなみに、iPhoneで撮影した画像は2.7MBとかあることが多いので、3MBの設定にしてみました。

最初は、2.5MBまでにしてたけど、iPhoneで撮影した画像の中に時々エラーが出るのがあったので、3MBが無難かと。

アップロードした後、小さくリサイズして保存して、容量を節約することも大事。

0 件のコメント:

コメントを投稿