おおたにです。 # SQLObjectにBLOBColがあったんですね。
streamでデータをセットできるかどうかは、Pythonじゃなくって、SQLObject で すね。SQLObjectはデータはstreamとしてわたせなかったと思います。 なので、obj.content = c.file.read()でどうでしょうか? obj.content = obj.content + buf としても結局objには、ファイルのデータを すべてon memoryで保持しているので、メモリの節約にはならないと思います。 アップロードだけに限定すれば、ファイルをmmapにマップしたものをセットすれ ばメモリを節約できるかもしれません。 [EMAIL PROTECTED] wrote: > Tracを参考にして、現在作成中のアプリケーションにファイルアップロード機能をつけた > のですが、1MB以上のファイルをアップロードしようとするとエラーが表示されてサーバーが > 停止してしまうという現象が発生しました。環境は以下の通りです。 > > Python2.4 > TurboGears0.9a6 > MySQL5.0 > > 調べてみると、my.cnfのmax_allowed_packetなるプロパティに設定されている値が最大値 > だということでしたが、例えばJavaでHibernateを使用すればbyteのstreamをデータオブジェクト > にsetすることで巨大なファイルもアップロードできたのですが、Pythonではそういうことは可能 > なのでしょうか?試しに以下のように実装してみたらobj.contentがNoneTypeになってしまい > ました・・・。 > > # c : > 関数の引数で指定されている、fileに対応する変数 > # obj : SQLObjectの子クラス > obj = SomeObject() > while True: > buf = c.file.read(1000) > if not buf: break > obj.content = obj.content, buf > > > --~--~---------~--~----~------------~-------~--~----~ これは、お客様が次の Google グループに申し込まれたことを確認するメッセー ジです。 Google Groups "turbogears-ja" group. To post to this group, send email to [email protected] このグループから退会するには、次へメールをお送りください。 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/turbogears-ja -~----------~----~----~----~------~----~------~--~---

