Menu:

View Alex Koval's profile on LinkedIn

Random photo

dsc00515.jpg

Fairy-tales

Жил себе девелопер, жил не тужил, но чего то в жизни ему не хватало. А не хватало ему сайта. Выучил он HTML, CSS, Django и вот такой получился сайт.

Links:

- Halogen D.G.
- Valid XHTML
- Valid CSS

Language:

AVK Site: Version-3.0

Blog Entry: Django MD5Storage - если много файлов в одном каталоге

В наших крупных проектах часто встречается ситуация, когда к какой нибудь модели привязываются файлы, вероятность перечечения имен которых велика. Django в этом случае добавляет _ к имени, но это конечный вариант и проблематичен для публичных интерфейсов. Да и даже для внутренних и то не очень хорошо когда каждый раз при update документа у нас добавляется _.

Но остновное - конечно проблемы со скоростью доступа к файлам. Если в каталоге лежат тычячи а то и десятки тысяч файлов - скорость работы с таким каталогом падает, особенно если файловая система не заточена под подобное использование. А эта ситация, которая возникает сплошь и рядом - для примера, аватары пользователей, или картинки продуктов на сайте e-commerce. Свалить всё это в один каталог - не очень хорошая идея.

Простое решение сразу пришло в голову как я увидел описание Writing a custom storage system на сайте документации Django. Не долго думая, реализовал совместно с Vic django app, и поместил его в свободный доступ.

Ещй раз плюсы подобного подхода:

Инсталлировать:

В корневой папке своего проекта развернуть все hdg утилиты:

svn co http://svn.halogen-dg.com/svn/repos/hdg/trunk -r HEAD hdg

В модели:

from hdg.djangoapps.MD5Storage.storage import MD5Storage

class SomeModel(models.Model):
some_picture = models.ImageField(storage=MD5Storage(),
upload_to='pictures')

 

Получиться примерно следующее:

Posted on January 5, 2010 0 Comments
Tags: django, python

Post a comment