django / 文件上传权限
-
03-07-2019 - |
题
我编写了一个 django 应用程序,但从 Web 表单上传文件的文件权限有一些问题。
基本上我可以上传 .mp3 文件,但它总是保持 chmod 600。
容器文件夹的chmod为775,umask设置为022。
我使用的是共享托管服务。
解决方案
如果使用Python 2,请在settings.py中尝试:
FILE_UPLOAD_PERMISSIONS = 0644
在Python 3中,八进制数必须以0开头,因此该行将为:
FILE_UPLOAD_PERMISSIONS = 0o644
有关详细信息,请查看文档。
其他提示
希望这有用。可以使用下面的方法。除了解决权限错误之外,这还有另外两个优点。
- 文件权限没有问题
- 更多更快
- 对于超过 2.5 MB 的文件,该文件不会复制到 /tmp/ 文件夹(也节省空间)。
with open(file_name, 'wb+') as temp_file:
for chunk in up_file.chunks():
temp_file.write(chunk)
不隶属于 StackOverflow