LINUX.ORG.RU

storage.DefaultStorage отрезает слэш вначале файла

 , ,


1

2

Дорогие друзья,

Это грёбаный стыд. Я создаю временный файл для миниатюр (thumbnails) при помощи tempfile.NamedTemporaryFile, потом передаю в easy_thumbnails, а оно падает с нерелевантно ошибкой. Pdb показал что внутрях этой либы используется 'django.core.files.storage.DefaultStorage' который тупо превращает '/tmp/tmp_xxx.png' в 'tmp/tmp_xxx.png' . После чего радостно сообщает что такого файла нет. Что, блин, делать?

Я могу загадить папкудиректорию с кодом и лить туда (или какой-нить MEDIA_ROOT), но, ёшкин кот, в /tmp было бы правильнее. Может, чего в settings.py не хватает? (код достался в наследство).

PS на всякий случай уточню что django.core.files.temp.NamedTemporaryFile не поможет.

★★★★★

class FileSystemStorage
location - Absolute path to the directory that will hold the files. Defaults to the value of your MEDIA_ROOT setting.

Оно ожидает, что ты в MEDIA_ROOT будешь складывать, потому что у этого класса можно url этого файла получить и т.п.

pawnhearts ★★★★★
()
Последнее исправление: pawnhearts (всего исправлений: 1)
Ответ на: комментарий от pawnhearts

Т.е., по сути, либо выставлять MEDIA_ROOT в /tmp, либо менять библиотеку? Ладно, наверно, тупо сделаю симлинк в /tmp.... Спасибо за помощь.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Т.е., по сути, либо выставлять MEDIA_ROOT в /tmp, либо менять библиотеку? Ладно, наверно, тупо сделаю симлинк в /tmp.... Спасибо за помощь.

Можно сразу в /dev/null, чего уж там.

Deleted
()
Ответ на: комментарий от Deleted

Я так не собирался делать, хотя, это rest-бэкенд, там нету файлового контента :)

А про симлинк я имел в виву ~app/media/tmp => /tmp , а не MEDIA_ROOT в /tmp.

true_admin ★★★★★
() автор топика
Последнее исправление: true_admin (всего исправлений: 1)

Исходники и pip freeze в студию

И вообще правильней всего в media лить и сделать там симлинк на tmp

Goury ★★★★★
()
Ответ на: комментарий от Goury

pawnhearts, я частично решил проблему. Мне NamedTemporaryFile возвращает file-like object который я и передал в easy_thumbnails. Но сохранять отказывается теперь в другом месте где нужно указывать путь до файла.

Печалька, сделал тупо симлинк на /tmp в папке проекта.

true_admin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.