From 466fc350ff8b4e33c8084caaad3832427c3d3021 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 13 Jan 2019 21:07:49 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= =?utf8?q?=D0=BB=20cheeseshop=20=D0=B4=D0=BE=20=D1=81=D0=BE=D1=81=D1=82?= =?utf8?q?=D0=BE=D1=8F=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE=D0=BA=D1=81?= =?utf8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=B0?= =?utf8?q?=D0=BA=D0=B5=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://git.stargrave.org/cgit.cgi/cheeseshop.git/ На работе нам нужно для Python два сервера внутренних: кэширующий сервер для пакетов, PyPI-совместимый по API сервер куда можно загружать внутренние пакеты. Мы используем pyshop, который объединяет это всё в одном пакете. Но с ним много проблем и он давно не обновляется. К сожалению, есть два варианта из того что могу найти: либо серверы куда только можно загружать, но не проксировать пакеты с кэшированием, либо тяжеловесные системы с полноценными СУБД, системами кэширования и задачами по обновлению пакетов по расписанию. Но я наткнулся на cheeseshop написанный на Go: https://github.com/c4s4/cheeseshop Он позволяет только загружать на него пакеты, без какого-либо проксирования. Кода безумно мало. Решил попробовать добавить в него это проксирование с кэшированием. Ровно два часа с момента как я сделал git clone и до момента когда я могу загружать с него пакеты автоматически загруженные с PyPI и сохранённые на диск. А через полчаса я ещё добавил и проверку SHA256 целостности, и атомарное сохранение на жёстком диске (через временный файл с переименованием). Ужас сколько времени я пишу на Python, но так быстро я бы ничего на нём не сделал. А тут написал полтора экрана кода (!) и он с первого раза заработал! -- 2.48.1