上传文件时,我将upload_to
设置为创建路径不存在的函数,Django正在创建额外的文件夹(具有我不喜欢的权限)。
例如,
def photo_upload_path(instance, filename):
return os.path.join('photos', str(instance.id), filename)
但是,文件夹的权限不是我想要的。我应该创建文件夹并设置权限吗?或者有这样的设置吗?
我发现了一个用于控制上传文件(django / file uploads permissions)权限的帖子,但没有创建目录。
感谢您的帮助!
答案 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
等行,则会设置默认权限