Несколько дней назад я выпустил Geist 👻. Простой инструмент загрузки, который использует Googles Firebase 🔥 в качестве серверной части. В частности, он использует хранилище, очевидно, для хранения файлов и аутентификации по соображениям безопасности. Но Geist — это гораздо больше, чем просто еще один инструмент для загрузки. Но начнем с нуля.

Почему я должен изменить некоторые файлы и сначала создать пользователя, прежде чем я смогу начать его использовать?

Причина проста. Прежде чем вы сможете запустить Geist, вам нужен экземпляр сервера Geist. Сервер позаботится о загрузке и сокращении URL для клиента. После того, как вы создали экземпляр, вы должны настроить клиент для использования этого экземпляра сервера.

Пользователь нужен из соображений безопасности. Вам не нужно создавать пользователя, но это рекомендуется. Если вы это сделаете, вы можете ограничить, кто может загружать файлы в хранилище. А это значит, что никто кроме вас не может загружать файлы в Firebase!

Вы используете Электрон. Почему бы вам не использовать загрузку и сокращение ссылок прямо в клиенте?

Из соображений безопасности. Когда вы создаете приложение с помощью Firebase JavaScript SDK, вам необходимо открыть исходный код вашего ключа браузера. В противном случае Firebase не сможет инициализировать себя. Но ключ браузера используется для доступа к Google API и прочему. Это означает, что в зависимости от используемого вами API и того, насколько часто вы его используете, это может привести к некоторым затратам.

Если кто-то захватит ключ вашего браузера (просто щелкните правой кнопкой мыши, отобразите исходный код) и воспользуется им, это может дорого вам обойтись! Для предотвращения этого можно настроить доверенные домены. Таким образом, только ваши домены могут использовать эти API.

Поскольку Geist Server использует API goo.gl (у которого есть бесплатные квоты, но они платные, если вы их достигнете), мы используем экземпляр сервера с ограниченными доменами вместо того, чтобы помещать всю логику внутри клиента. Если мы это сделаем, нам нужно настроить доверенные домены на localhost. Который, очевидно, каждый с компьютером.

Начнем с особенностей. Очевидно, что Geist может загружать файлы в хранилище Firebase (вы также можете просто перетащить файл в трей):

Кроме того, у него есть ярлык для создания скриншотов, которые будут загружены сразу после того, как вы его создали. Просто нажмите CMD+4 (не CMD+ALT+4. Это создаст обычный снимок экрана в macOS), выберите область и отпустите:

Гифки — это новый PNG, верно? ПРАВИЛЬНО?
Для этого формата изображения нового века Geist предоставляет двух помощников. Первый конвертирует данное видео в gif и загружает его:

Второй — на мой взгляд, более мощный — помощник позволяет вам непосредственно создавать гифки и, как вы понимаете, загружать их:

Для создания гифок вам нужно сначала установить ffmpeg. В противном случае невозможно создавать или конвертировать GIF-файлы из видео. Но это легко на macOS. Вы можете просто установить его через Hombrew:

brew install ffmpeg

После успешной загрузки ссылка на файл будет скопирована прямо в буфер обмена. Вы можете просто вставить его с помощью CMD+V куда угодно.

В настоящее время процесс установки Geist и Geist Server не так прост. Я надеюсь, что смогу улучшить этот процесс в будущем. Тем временем вы можете помочь мне улучшить Geist (сервер), создавая проблемы, чтобы поделиться своим опытом или улучшениями…