2011-07-14 84 views
2

上傳文件時,我將upload_to設置爲創建路徑不存在的函數,並且Django正在創建額外的文件夾(具有我不喜歡的權限)。創建具有正確權限的文件夾django上傳

例如,

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創建的所有目錄,包括靜態文件,請謹慎使用。

FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755 

更改示例代碼以使用您希望的權限。在我的示例代碼中,我沒有使用您請求的許可(0o777),以防有人在未閱讀的情況下進行復制。