micromeow
@micromeow

Почему PermissionError: [Errno 13] Permission denied на хостинге?

При тестировании на локальном сервере все происходит корректно, на сайте есть форма, где есть несколько полей с возможностью прикрепить файл(png,jpg), записи с поля переносятся в db sqlite, которая лежит внутри директории, но при сохранении файла-изображения в логах выдается ошибка PermissionError: [Errno 13] Permission denied, в чем может быть проблема?

try:
            image.save(os.path.join(rf"app/static/images/goods/{itemName}", filenameGood))
            imagePage.save(os.path.join(rf"app/static/images/goods/{itemName}", filenameGoodPage))
        except:
            os.makedirs(rf"app/static/images/goods/{itemName}")
            image.save(os.path.join(rf"app/static/images/goods/{itemName}", filenameGood))
            imagePage.save(os.path.join(rf"app/static/images/goods/{itemName}", filenameGoodPage))

вот сами строчки на которые ругается хостинг, я думал проблема в пути и решил просто сохранить изображение сразу в корень, без папок, но ошибка все та же

Traceback (most recent call last):
	File "/home/c/myhost/public_html/index.wsgi", line 182, in createGood
     	image.save(filenameGood)
   	File "/home/c/myhost/public_html/venv/lib/python3.6/site-packages/werkzeug/datastructures.py", line 3021, in save
     	dst = open(dst, "wb")
 	PermissionError: [Errno 13] Permission denied: 'd0f2831a-2e6d-11ed-8d2c-3cecef0d9b4c.png'


я думал что ошибка в htaccess, но ничего не нашел про это
  • Вопрос задан
  • 3100 просмотров
Пригласить эксперта
Ответы на вопрос 2
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Немного странно спрашивать "в чем может быть проблема", если это написано прямо в заголовке вопроса.
Ошибка Permission denied является совершенно стандартной, переводится как ошибка прав доступа к файлам/папкам.
".htaccess" (как и sqlite) здесь совершенно не при чем
Пользователь, под которым выполняется веб-сервер, не имеет права на запись в папку app/static/images/goods/
Надо разобраться, под каким пользователем создана папка и под каким пользователем выполняется веб-сервер. В самом тупом случае поставить папке права 777, но лучше всего конечно сделать так, чтобы веб-сервер выполнялся от имени пользователя
Ответ написан
borisdenis
@borisdenis
Ленив и вреден...
Очень смущает вот эта строка
dst = open(dst, "wb"), вы уверены, что в скобках и за скобками должно быть dst? Ведь в скобках должен быть путь к открываемому файлу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы