Свой сервер скриншотов без смс и регистрации
Я разработчик. И у меня была боль. Ха-ха теперь уже была.
При обсуждении чего-либо в работе для наглядности я использовал сервисы скриншотов. Нажал print screen, выделил важный блок и отправил ссылку.
Но не так все просто. Использовал я разные варианты. И то регулярные зависания, то сервера недоступны, то еще что-то. Ну еще смущало, что отправляю я ссылки на страницы с рекламой.
Последней каплей стало постоянное зависание последней программы, в которой я оплатил улучшенный тариф. Она просто начала иногда вешать мой ноутбук. 30% загрузка процессора и только оставалось убивать задачу.
Ну в общем поплакался: ] Теперь по делу.
Нашел я на просторах интернета ShareX:
Бесплатная она и для Windows 10 работает. Подождите, владельцы Linux и MacOs, не убегайте. Не об этой программе речь. Просто в ней есть возможность делать отправку на любой адрес. Если на других платформах есть что-то подобное, кидайте ссылки в комментариях.
Ну и зачесался «программист» внутри. А почему бы не сделать свой сервис с блэкджеком... ну вы поняли. Возможно решения уже есть. Я не стал искать. Хочу свое и управляемое. День делов-то.
На Laravel слепил сервис, принимающий файлы
- Есть админка.
- Можно загружать форматы, которые вы сами разрешите.
- Можно обрабатывать получаемые изображения, а можно и нет.
- Я вообще его начал использовать для загрузки жирных файлов, чтобы к задаче в Trello приложить. Ограничение в 10Мб мешает частенько. У нас на сервере даже папка есть oblako, чтобы на такие файлы можно было сослаться в рабочих задачах. Собственно поэтому и пакет я назвал oblako.
- Установка 1 командным файлом. Копируем run_start.sh в корень сайта и запускаем в консоли "sh run_start.sh". Вроде протестировал, вроде работает. И так сойдет. Если у кого будут проблемы, пишите в github. Причешем.
- По умолчанию используется SQLite. Поэтому достаточно только PHP8 на сервере.
В мыслях есть:
- Возможность создания токенов отдельно по пользователям для контроля потраченного места. Сейчас токен единый на все загрузки.
- Создание закрытых для общего доступа файлов, видимых только тем, кто авторизован.
- Автоматическое удаление устаревших файлов.
- Нормальная система обновления через панель управления.
Забыл написать
Это некоммерческий проект. По крайней мере я не думал о моентизации. Просто решил свою проблему. Возможно кому-то это тоже пригодится.
Не думаю, что это нужно для частных целей. Скорее, это подойдет различным студиям разработки. Ну или возможно кто-то поднимет общедоступные ноды...
В общем, пока писал, решил поднять 1 ноду. Оплачено 300Гб места на 3 месяца. Для тестирования достаточно, думаю.
Пример настройки ShareX:
Token: vAGxT8zywfj0Iz6pbPpG
Потом настройте, чтобы по умолчанию для всех типов файлов использовался наш сервис:
Разрешены файлы до 2000 Кб.
Форматы: doc, xls, xlsx, docx, pdf, rtf, txt, ppt, pptx, png, jpeg, jpg, jpe, svg, rar, zip, webp, sql, xml, json
Пережатие изображений не выполняется.
Все спасибо за внимание