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/文件上传权限的主要内容,如果未能解决你的问题,请参考以下文章

上传文件时Django的权限被拒绝错误

Nginx,django文件上传失败,Permission denied...

Nginx代理文件上传403

安全的 django 文件权限

django 上传文件问题

django文件上传的时候怎么能加一个上传进度的显示