]> Sergey Matveev's repositories - stargrave-blog.git/commit
Доработал cheeseshop до состояния проксирования пакетов
authorSergey Matveev <stargrave@stargrave.org>
Sun, 13 Jan 2019 18:07:49 +0000 (21:07 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 13 Jan 2019 18:07:49 +0000 (21:07 +0300)
commit466fc350ff8b4e33c8084caaad3832427c3d3021
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent678bb3bee703cc2fc2d2a427b970c9b1a4ffb08a
Доработал cheeseshop до состояния проксирования пакетов

https://git.stargrave.org/cgit.cgi/cheeseshop.git/
На работе нам нужно для Python два сервера внутренних: кэширующий сервер
для пакетов, PyPI-совместимый по API сервер куда можно загружать
внутренние пакеты. Мы используем pyshop, который объединяет это всё в
одном пакете. Но с ним много проблем и он давно не обновляется.

К сожалению, есть два варианта из того что могу найти: либо серверы куда
только можно загружать, но не проксировать пакеты с кэшированием, либо
тяжеловесные системы с полноценными СУБД, системами кэширования и
задачами по обновлению пакетов по расписанию.

Но я наткнулся на cheeseshop написанный на Go: https://github.com/c4s4/cheeseshop
Он позволяет только загружать на него пакеты, без какого-либо
проксирования. Кода безумно мало. Решил попробовать добавить в него это
проксирование с кэшированием. Ровно два часа с момента как я сделал git
clone и до момента когда я могу загружать с него пакеты автоматически
загруженные с PyPI и сохранённые на диск. А через полчаса я ещё добавил
и проверку SHA256 целостности, и атомарное сохранение на жёстком диске
(через временный файл с переименованием). Ужас сколько времени я пишу на
Python, но так быстро я бы ничего на нём не сделал. А тут написал
полтора экрана кода (!) и он с первого раза заработал!