2012-05-09 5 views
2

私は自分のサーバーに約70MBの画像をアップロードする必要があるサイトを構築しています。現在、512MBのRAMを搭載したLinodeを実行しています。このサーバに他のサイトがあるため余分なメモリがないので、イメージを直接ファイルシステムにダンプすることによってRAMを使い切ることなくサーバにアップロードすることができます。また、POST経由でアップロードされたファイルもありますファイルシステムにダンプする前にまずメモリにロードする必要がありますか?この問題の性質は、多くのRAMを搭載したサーバーを必要としますか?RAMを使わずにHTML形式で大きな画像をサーバーにアップロードできますか?

どうやらFTPクライアントをHTMLフォームに統合する方法はありますか?私はそれが違いがあれば、Djangoを使っています。

+2

技術: このリンクに従ってください。 HTML5では 'FileAPI'を使うことができます。 – kirilloid

答えて

1

....ジャンゴファイルのアップロードアップロードの2種類があります:それは

ドキュメントは、あなたがより多くの詳細をしたい場合はここにあるRAMを使用しないで、早くディスクにDjangoのスプールrequest.FILESを行います。

1 - インメモリアップロード InMemoryUploadの場合2.一時アップロード

あなたがアップロードされたファイルは、唯一のrequest.FILESを通じてラムである しかし、最終的に使用されInMemoryUploadからTemporaryUploadにそれを転化すること、アップロードを設定することができますRAMのために節約/ tmpフォルダに格納する。.. ... settings.pyで

: -

FILE_UPLOAD_MAX_MEMORY_SIZE =

を#something

メモリにアップロードされるファイルの最大サイズ(バイト単位)。 FILE_UPLOAD_MAX_MEMORY_SIZEより大きいファイルは、ディスクにストリーミングされます。 デフォルトは2.5メガバイトです。

FILE_UPLOAD_TEMP_DIR = #to SMEパス

FILE_UPLOAD_MAX_MEMORY_SIZEより大きいアップロードされたファイルを格納するディレクトリ。 システムの標準の一時ディレクトリ(つまり、ほとんどのUnixライクなシステムでは/ tmp)に設定されています。

その後、/ tmpはシステムが停止するとすべてのファイルを削除するため、そのファイルを必要なディレクトリにまとめることができます。それはいくつかの要求にファイルの一部をアップロードし、同じファイルにそれらを追加することによって可能である

https://docs.djangoproject.com/en/dev/topics/http/file-uploads/#changing-upload-handler-behavior

+0

詳細を指定して回答を改善してください。 –

+1

ありがとうございます。改善されました。詳細情報が必要ですか? –

+0

私はそれがOKだと思います;)ありがとう –