如何在Django中更改上传文件的所有者和组?
当我把文件上传到Django服务器时,文件的权限看起来是这样的:
-rw-r--r-- 1 bangtest nobody 5198 May 2 00:37 image.jpg
但是我想以根用户的身份上传这些文件,我该如何在Django应用中用Python做到这一点呢?
我试过使用这个方法
import pwd
import grp
import os
uid = pwd.getpwnam("root").pw_uid
gid = grp.getgrnam("root").gr_gid
path = '/home/bangtest/alpha/media/products/image_2081.jpg'
os.chown(path, uid, gid)
但是我遇到了这样的错误:
OSError: [Errno 1] 操作不允许: '/home/bangtest/alpha/media/products/image_2081.jpg'
请给我一个解决这个问题的建议。
谢谢
1 个回答
1
你有几个选择,我通常会尝试这两种方法:
- 简单的方法:把你需要操作的文件夹权限设置为775,如果你需要保存信息,可以设置为777(不过这样不太安全)。
- 复杂的方法:把www/nobody或者你的Apache用户名加入到你的用户组,然后让这个文件夹对这个用户组的成员可读可写(或者直接给www或者你的Apache/nginx用户在这个文件夹里添加权限)。