おおたにです。

# 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
-~----------~----~----~----~------~----~------~--~---

メールによる返信