2012-01-14 16 views
1

私のアプリケーションでは、新しい画像を生成することがあります。コメントhereを読んだ後、私はファイルシステムとメタデータをデータベースに保存することに決めました。私のファイルはデータベースとは独立して静的に提供されます(bdはアクセスしたいファイル名を与え、静的ファイルサーバー)。静的リソースのアクセス制御

しかし、私がここで問題になっているのは、他のユーザーが生成した画像をユーザーに見せたくないということです。たとえば、ユーザーJoeが写真AとBを作成し、ユーザーSueがCとDを作成するとします。ジョーがCとDを見ることができないようにして、スーにAとBが表示されないようにします。すべてのファイル静的に提供されます.JoeがCのURLを推測した場合、Joeはアクセスできます。

画像が提供されている方法は、私のジャンゴのコントロールの外にほとんどですので、私はここでの解決策は、(複雑かつ資源集約的である)、ファイルを暗号化する以外にどうなるかわからない

+2

はhttp://serverfault.com/questions/332631/how-can-i-protect-files-on-my-nginx-server – sanmai

+2

もhttp://stackoverflow.com/を参照してください。質問/ 4022260/how-to-detect-x-accel-redirect-nginx-x-sendfile-apache-support-in-php – sanmai

答えて

1

簡単な方法は、django send_file [1]を使用してそれを行うことです。これは実装は簡単ですが、拡張性はありません。私は動的に生成されたレポートを提供するためにそれを使用します。このソリューションの唯一の利点は、すべてのPythonコードだということです。

より良い方法は、sanmaiのリンクに関する情報を使用することです。いくつかのdjango固有の情報については、こちらをご覧ください:http://www.sensibledevelopment.com/2010/11/django-sendfile-an-for-abstraction-large-file-serving-in-django/

1:http://djangosnippets.org/snippets/101/

1

イメージパスの一部として、ある属性の1つまたは複数のMD5の16進数を使用します。パスはかなりランダムになります。

関連する問題