#python #django #openshift #permission-denied
#python #django #openshift #отказано в разрешении
Вопрос:
У меня есть код, который загружает предоставленные пользователем вложения в приложение django, размещенное на Openshift. Но код загрузки всегда завершается с ошибкой, показывая следующую трассировку стека :
Traceback:
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/core/handlers/base.py" in get_response
115. response = callback(request, *callback_args, **callback_kwargs)
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/contrib/auth/decorators.py" in _wrapped_view
25. return view_func(request, *args, **kwargs)
File "/var/lib/openshift/some_hash_value/app-root/runtime/repo/wsgi/acubor/voucher/views.py" in save_vch
267. voucher = save_model(voucher, voucher_values)
File "/var/lib/openshift/some_hash_value/app-root/runtime/repo/wsgi/acubor/lib.py" in save_model
108. model.save()
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/db/models/base.py" in save
546. force_update=force_update, update_fields=update_fields)
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/db/models/base.py" in save_base
650. result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw)
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/db/models/manager.py" in _insert
215. return insert_query(self.model, objs, fields, **kwargs)
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/db/models/query.py" in insert_query
1675. return query.get_compiler(using=using).execute_sql(return_id)
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/db/models/sql/compiler.py" in execute_sql
936. for sql, params in self.as_sql():
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/db/models/sql/compiler.py" in as_sql
894. for obj in self.query.objs
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/db/models/fields/files.py" in pre_save
250. file.save(file.name, file, save=False)
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/db/models/fields/files.py" in save
86. self.name = self.storage.save(name, content)
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/core/files/storage.py" in save
48. name = self._save(name, content)
File "/var/lib/openshift/some_hash_value/python/virtenv/lib/python2.7/site-packages/Django-1.5.4-py2.7.egg/django/core/files/storage.py" in _save
171. os.makedirs(directory)
File "/var/lib/openshift/some_hash_value/python//virtenv/lib64/python2.7/os.py" in makedirs
150. makedirs(head, mode)
File "/var/lib/openshift/some_hash_value/python//virtenv/lib64/python2.7/os.py" in makedirs
150. makedirs(head, mode)
File "/var/lib/openshift/some_hash_value/python//virtenv/lib64/python2.7/os.py" in makedirs
150. makedirs(head, mode)
File "/var/lib/openshift/some_hash_value/python//virtenv/lib64/python2.7/os.py" in makedirs
150. makedirs(head, mode)
File "/var/lib/openshift/some_hash_value/python//virtenv/lib64/python2.7/os.py" in makedirs
150. makedirs(head, mode)
File "/var/lib/openshift/some_hash_value/python//virtenv/lib64/python2.7/os.py" in makedirs
150. makedirs(head, mode)
File "/var/lib/openshift/some_hash_value/python//virtenv/lib64/python2.7/os.py" in makedirs
150. makedirs(head, mode)
File "/var/lib/openshift/some_hash_value/python//virtenv/lib64/python2.7/os.py" in makedirs
157. mkdir(name, mode)
Exception Type: OSError at /voucher/journal/save/
Exception Value: [Errno 13] Permission denied: '/Users'
Request information:
GET: No GET data
И соответствующие настройки :
MEDIA_ROOT = os.path.join(os.environ.get('OPENSHIFT_DATA_DIR'), 'user-uploads')
MEDIA_URL = '/user-uploads/'
Есть предложения??
Комментарии:
1. вам необходимо изменить права доступа к папке
2. какой папке и какие разрешения я должен назначить?
3. у вас
/Users
есть папка?4. @dhana OP использует Openshift, поэтому не беспокойтесь о разрешениях для папок
5. @abhayK Вам нужно создать каталог
$OPENSHIFT_DATA_DIR/user-uploads
. Для этого вам нужно создать перехват действия, последняя часть этого блога поможет: masci.wordpress.com/2012/07/17 /…