权限在上传文件时Django被拒绝 [英] Permission Denied error with Django while uploading a file

查看:177
本文介绍了权限在上传文件时Django被拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前有一个简单的模型,使用 django缩略图插件的photoupload功能。



但是,当我尝试上传它给我以下错误:

  OSError at / admin / products / photo / add / 

(13,'Permission denied')

现在,我知道这似乎是一个权限问题,所以我检查的第一件事是目录的权限,并将其更改为777(Just to Test),重新启动服务器和fcgi,它仍然给出错误。 / p>

追溯

 追溯:文件/ usr / lib / python2。 6 / dist-packages / django / core / handlers / base.pyin get_response 
92. response = callback(request,* callback_args,
** callback_kwargs)文件/ usr / lib / python2。 6 / dist-packages / django / contrib / admin / options.pyin wrapper
226. return self.admin_site.admin_view(view)(* args,
** kwargs)_wrapped_view_func中的文件/usr/lib/python2.6/dist-packages/django/views/decorators/cache.py
44. response = view_func(request,* args, ** kwargs)文件/usr/lib/python2.6/dist-packages/django/contrib/admin/sites.pyin inner
186. return view(request,* args,** kwargs)File _commit_on_success
240中的/usr/lib/python2.6/dist-packages/django/db/transaction.py。res = func(* args,** kw)文件/ usr / lib / python2 6 / dist-packages / django / contrib / admin / options.pyadd_view
734. self.save_model(request,new_object,form,change = False)文件/usr/lib/python2.6/dist save_model
557.中的packages / django / contrib / admin / options.pyobj.save()文件/usr/lib/python2.6/dist-packages/django/db/models/base.py save
410. self.save_base(force_insert = force_insert,force_update = force_update)文件/usr/lib/python2.6/dist-packages/django/db/models/base.py在save_base $ b中$ b 483。 value = [(f,f.get_db_prep_save(raw和getattr(self,f.attname)或f.pre_save(self,True)))如果不是isinstance(f,AutoField)在meta.local_fields中的f)文件/ usr /lib/python2.6/dist-packages/django/db/models/fields/files.py在pre_save
252. file.save(file.name,file,save = False)文件/ var /保存
84. super(ImageWithThumbsFieldFile,self).save(name,content,save)文件/usr/lib/python2.6中的www / django_projects / gang /../ gang / products / thumbs.py /dist-packages/django/db/models/fields/files.py保存
91. self.name = self.storage.save(name,content)文件/usr/lib/python2.6/ dist-packages / django / core / files / storage.py保存
47. name = self._save(name,content)文件/usr/lib/python2.6/dist-packages/django/core /files/storage.py在_save
146. os.makedirs(目录)文件/usr/lib/python2.6/os.py在makedirs
150. makedirs(head,mode)文件/usr/lib/python2.6/os.py在制作irs
150. makedirs(head,mode)文件/usr/lib/python2.6/os.py在makedirs
150. makedirs(head,mode)文件/ usr / lib / python2 。$ / $ / $ / $ / $ / $ / $ / $ / $ / $ / $ / $ / $ / $ / $ / $ / $ / $ /权限被拒绝')

正在运行FCGI守护程序的用户绝对可以访问读写到该目录。



从settings.py

  MEDIA_ROOT ='/ var / www / sites / gang / http / media /'
MEDIA_ROOT_URL ='/ media /'


解决方案

尝试检查从/开始的路径中每个目录的权限。只是一个想法。


I currently have a simple model defined, with a photoupload feature using django thumbnails plugin.

but when i try to upload it gives me the following error:

OSError at /admin/products/photo/add/

(13, 'Permission denied')

Now, i know this is seems to be a permission issue, so the first thing i checked were permissions on the directory and changed these to 777 (Just to Test), restarted the server and fcgi and it still gives the error.

Traceback

Traceback: File "/usr/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
  92.                 response = callback(request, *callback_args,
**callback_kwargs) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in wrapper
  226.                 return self.admin_site.admin_view(view)(*args,
**kwargs) File "/usr/lib/python2.6/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
  44.         response = view_func(request, *args, **kwargs) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/sites.py" in inner
  186.             return view(request, *args, **kwargs) File "/usr/lib/python2.6/dist-packages/django/db/transaction.py" in _commit_on_success
  240.                 res = func(*args, **kw) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in add_view
  734.                 self.save_model(request, new_object, form, change=False) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in save_model
  557.         obj.save() File "/usr/lib/python2.6/dist-packages/django/db/models/base.py" in save
  410.         self.save_base(force_insert=force_insert, force_update=force_update) File "/usr/lib/python2.6/dist-packages/django/db/models/base.py" in save_base
  483.                     values = [(f, f.get_db_prep_save(raw and getattr(self, f.attname) or f.pre_save(self, True))) for f in meta.local_fields if not isinstance(f, AutoField)] File "/usr/lib/python2.6/dist-packages/django/db/models/fields/files.py" in pre_save
  252.             file.save(file.name, file, save=False) File "/var/www/django_projects/gang/../gang/products/thumbs.py" in save
  84.         super(ImageWithThumbsFieldFile, self).save(name, content, save) File "/usr/lib/python2.6/dist-packages/django/db/models/fields/files.py" in save
  91.         self.name = self.storage.save(name, content) File "/usr/lib/python2.6/dist-packages/django/core/files/storage.py" in save
  47.         name = self._save(name, content) File "/usr/lib/python2.6/dist-packages/django/core/files/storage.py" in _save
  146.             os.makedirs(directory) File "/usr/lib/python2.6/os.py" in makedirs
  150.             makedirs(head, mode) File "/usr/lib/python2.6/os.py" in makedirs
  150.             makedirs(head, mode) File "/usr/lib/python2.6/os.py" in makedirs
  150.             makedirs(head, mode) File "/usr/lib/python2.6/os.py" in makedirs
  157.     mkdir(name, mode)

Exception Type: OSError at /admin/products/photo/add/ Exception Value: (13, 'Permission denied')

The user that the FCGI daemon is being run on definitely has access to read and write to that directory.

From settings.py

MEDIA_ROOT = '/var/www/sites/gang/http/media/'
MEDIA_ROOT_URL = '/media/'

解决方案

Try checking the permissions on each directory in the path starting at /. Just a thought.

这篇关于权限在上传文件时Django被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆