2012-07-05 16 views
6

私はユーザーが画像をアップロードできるDjangoアプリを書いていますが、私はそれらのサービスの仕方がわかりません。Djangoでユーザがアップロードしたファイルを提供するには?

1ファイルを静的ファイルとしてアップロードする:プロジェクトのディレクトリにあるstaticフォルダにアップロードしてからpython manage.py collectstaticを実行しますが、ファイルごとにこのコマンドを自動的に実行する方法はわかりませんアップロードされます。これは、サーバが静的なアプリケーション内のすべてを削除して再読み込みするたびに処理が多いようです。私urls.pyで

2 - 使用django.views.static.serve

url(r'^media/(?P<path>.*)$', 'django.views.static.serve', { 
     'document_root': settings.MEDIA_ROOT, 
    }), 

しかしthe docは生産のためにそれをお勧めしません。

ユーザーがアップロードしたファイルを配信するにはどうすればよいですか?

+0

を参照してください。ユーザー権限のようなさらなる制御が必要な場合は、mod_xsendfileをオプションにすることができます。 – Jingo

答えて

2

アップロードしたファイルはMEDIA_ROOTになり、MEDIA_ROOTを使用して配信できます。 settings.pyにこれらのパラメータを設定する必要があります。

あなたの開発はdjango dev serverを使って行うことができますが、Apacheや他のサーバから提供するように設定することができます。

は、私はApacheや似Webサーバを経由して、それらのファイルを提供するためにその良いアイデアだと思いDjango managing stored files

+0

Apacheから配信するように設定する方法の例はありますか? – jul

+0

は、静的ファイルに使用しているのと同じ設定を使用します。または一般的なファイルを提供するようにApacheを設定する方法を尋ねていますか? – scytale

+0

私はwebfactionホスティングを使用しており、http://docs.webfaction.com/software/django/getting-started.htmlに記載されている静的メディアを提供するための手順に従っています。これは 'django.contrib.staticfiles'で使用するためですが、' django.contrib.staticfiles'を使わずにファイルをアップロードして提供できる別のディレクトリが必要です。私はwebfaction特定のフォーラムで尋ねます。ありがとう。 – jul

関連する問題