创建具有正确权限的文件夹django上传

时间:2011-07-14 00:11:18

标签: python django permissions directory

上传文件时,我将upload_to设置为创建路径不存在的函数,Django正在创建额外的文件夹(具有我不喜欢的权限)。

例如,

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

但是,文件夹的权限不是我想要的。我应该创建文件夹并设置权限吗?或者有这样的设置吗?

我发现了一个用于控制上传文件(django / file uploads permissions)权限的帖子,但没有创建目录。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

您可以更改设置文件中的默认目录权限。这在Django 1.7之后可用,并在the Django documentation中有详细描述。请注意,这将影响Django创建的所有目录,包括静态文件,因此请谨慎使用。

FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755

更改示例代码以使用您想要的权限。我没有在我的示例代码中使用您请求的权限(0o777),以防有人复制而没有阅读。

答案 1 :(得分:0)

所以我最终找到了权限的解决方案。

我使用的是apache,所以我认为它实际上不是100%的django问题。

如果我修改/etc/apache2/envvars并设置添加umask u=rwx,g=rwx,o=rwx等行,则会设置默认权限