2011-07-14 6 views
2

ファイルをアップロードするときに、パスを作成する関数にupload_toを設定しています.Djangoは余分なフォルダを作成しています。例えば正しい権限でフォルダを作成するdjango uploads

def photo_upload_path(instance, filename): 
    return os.path.join('photos', str(instance.id), filename) 

しかし、フォルダのアクセス権は、私が希望するものではありません。フォルダを作成して権限を設定する必要がありますか?それともこの設定がありますか?

アップロードされたファイル(django/file uploads permissions)の権限を制御するためのポストが見つかりましたが、作成されたディレクトリは見つかりませんでした。

ありがとうございました!

答えて

0

私はパーミッションの解決策を見つけ出しました。

私はApacheを使用していたので、実際には100%djangoの問題ではなかったと思います。

私は/etc/apache2/envvarsを編集して、このようなumask u=rwx,g=rwx,o=rwxのような行を追加設定した場合は、それはあなたがあなたの設定ファイルのデフォルトのディレクトリのパーミッションを変更することができ、デフォルトの権限

2

を設定します。これはDjango 1.7以降で利用可能で、詳細はthe Django documentationで記述されています。これはDjangoが作成するすべてのディレクトリ(staticfilesを含む)に影響しますので、注意して使用してください。

FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755 

必要な権限を使用するようにサンプルコードを変更してください。誰かが読んでいなくてもコピーする場合は、私のサンプルコードであなたの要求された許可(0777)を使用しませんでした。