django/文件上传权限
Posted
技术标签:
【中文标题】django/文件上传权限【英文标题】:Django / file uploads permissions 【发布时间】:2010-10-11 03:36:01 【问题描述】:我写了一个 django 应用,但是我对从 web 表单上传文件的文件权限有点问题。
基本上我可以上传 .mp3 文件,但它始终保持 chmod 600。
容器文件夹chmod 775,umask设置为022。
我在共享托管服务中。
【问题讨论】:
【参考方案1】:如果您使用 Python 2,请在您的 settings.py 中尝试:
FILE_UPLOAD_PERMISSIONS = 0644
在 Python 3 中,八进制数必须以 0o 开头,因此该行将是:
FILE_UPLOAD_PERMISSIONS = 0o644
更多详情see the documentation。
【讨论】:
如果有人需要文档链接:docs.djangoproject.com/en/dev/ref/settings/… 这对我也有帮助...谢谢。 Numbers starting with 0 are base 8。前缀0o
是文档中提到的另一种选择。
在 python 中,3 个八进制数必须以 0o
开头,因此该行将是:FILE_UPLOAD_PERMISSIONS = 0o644
当我尝试打印我的设置。UPLOAD_FILE_PERMISSIONS,它是空的?【参考方案2】:
希望这是有用的。可以使用下面的方法。除了解决权限错误之外,这还有 2 个其他优点。
文件权限没有问题 更多更快 对于超过 2.5 MB 的文件,不会将文件复制到 /tmp/ 文件夹(也节省空间)。with open(file_name, 'wb+') as temp_file:
for chunk in up_file.chunks():
temp_file.write(chunk)
【讨论】:
以上是关于django/文件上传权限的主要内容,如果未能解决你的问题,请参考以下文章