В Интернете вы встретите очень длинные URL-адреса (унифицированные указатели ресурсов). Многие сайты помещают информацию о вашем посещении в URL: такие элементы, как язык, местоположение, идентификация, коды ссылок для специальных предложений и многие другие элементы. Это делает для очень длинных URL.
Премиум URL Shortener на Code Canyon — это способ сократить длинные URL. В этом уроке я покажу вам, как настроить собственное сокращение URL в вашей системе и как его использовать.
Что такое URL Shortener?
Вы используете URL всякий раз, когда вы просматриваете Интернет. Он идентифицирует конкретную веб-страницу и контент. Поскольку они часто могут содержать параметры для формы или поисковой системы, эти URL могут быть довольно большими.
1
|
https://tutsplus.com/tutorials/search/How%20to%20Draw%20Animals:%20Horses,%20Their%20Anatomy%20and%20Poses
|
Этот URL предназначен для поиска на сайте Tuts + строки «Как рисовать животных: лошадей, их анатомию и позы». Эта строка длиной 74 символа. Я видел URL длиной более 200 символов.
1
|
https://bit.ly/2oO8BqO
|
Когда вы используете службу сокращения URL-адресов, например bit.ly , вы получаете намного более короткий URL-адрес. Этот же URL теперь имеет длину 15 символов. Когда кто-то просматривает эту ссылку, сервер bit.ly перенаправляет браузер на полный URL-адрес. Дополнительный поиск по другому URL задерживает время загрузки сайта, но не сильно.
Установка Docker
Самый простой способ создать локальный сервер — это использовать виртуальную среду. Но запуск полного виртуализатора системы очень ресурсоемкий. Docker — это минимальный виртуализатор для терминальных систем. Вы можете запустить Docker-контейнер (небольшой сервер Unix), используя меньше системных ресурсов.
Чтобы запустить контейнеры в вашей системе, вам нужно установить Docker . Выберите правильную загрузку для вашей операционной системы на веб-сайте Docker .
С установленным Docker вам необходимо подготовить свою систему к поиску веб-службы, которую вы будете создавать. Для этого вам нужно будет изменить системный файл. В /etc/hosts
для систем Linux или macOS и в файле c:\windows\System32\drivers\etc\lmhosts
для системы Windows поместите этот оператор:
1
|
127.0.0.1 s.dev
|
Это изменение сделает все ссылки на http://s.dev
доступными к локальной системе. Это делается для того, чтобы дать службе правильное имя хоста, прежде чем пытаться его настроить.
Чтобы создать свою область разработки, создайте каталог, поместите в него zip-файл Premium URL Shortener и разверните его. Вы должны иметь такую структуру каталогов:
Это документация с файлом main.zip
. Разверните этот файл также. Как только вы развернете его, вы должны иметь следующую структуру каталогов:
Файл main.zip
содержит все файлы исходного кода и ресурсы для сервиса. Это будет каталог, который вы добавите в экземпляр Docker.
Теперь вам нужно получить стек Docker LAMP от fauria . Запустив Docker, введите в терминал следующее:
1
|
docker pull fauria/lamp
|
Это загрузит стек Fauria LAMP (Linux, Apache, MySQL и PHP) в вашу установку Docker. После загрузки вы можете создать контейнер с:
1
|
docker run —rm —name linkshort -p 80:80 -e LOG\_STDOUT=true -e LOG\_STDERR=true -e LOG\_LEVEL=debug -v {{service source directory}}:/var/www/html fauria/lamp
|
Замените {{service source directory}}
на полный путь к каталогу, который содержит все исходные файлы и ресурсы. Эта команда создает контейнер с именем linkshort
который работает на порте 80 и выдает все сообщения об ошибках и сообщения журнала в стандартный вывод.
Прямо сейчас, каждый раз, когда вы останавливаете и перезапускаете контейнер, вы потеряете всю свою информацию. Вам необходимо переместить информацию базы данных в каталог с исходным кодом, чтобы сохранить ее при каждой перезагрузке. В окне терминала выполните следующие команды:
1
2
3
4
|
docker exec -i -t linkshort bash
mkdir /var/www/html/data
cp -R /var/lib/MySQL/* /var/www/html/data
exit
|
Первая команда открывает оболочку bash для контейнера. Вторая команда создает data
каталога в вашем каталоге исходного кода. Контейнер видит каталог с исходным кодом как каталог /var/www/html
. Третья команда копирует информацию базы данных в этот каталог. Команда exit
выводит вас из контейнера.
Теперь остановите контейнер, используя:
1
|
docker stop linkshort
|
Вы будете использовать эту команду каждый раз, когда хотите остановить контейнер.
Теперь, чтобы перезапустить контейнер, используя правильный каталог данных, используйте эту команду:
1
|
docker run —rm —name linkshort -p 80:80 -e LOG\_STDOUT=true -e LOG\_STDERR=true -e LOG\_LEVEL=debug -v {{service source directory}}:/var/www/html -v {{service source directory}}/data:/var/lib/mysql fauria/lamp
|
На этот раз вы создали контейнер с сервером MarianDB, используя данные базы данных, которые теперь хранятся на вашем компьютере. Это команда, которую вы будете использовать для запуска сервиса. Я использую расширитель клавиатуры Typinator, чтобы напечатать это для меня.
Теперь необходимо создать базу данных для сокращения URL. Вам также нужно будет открыть оболочку в контейнере. В новом экземпляре терминала введите следующую команду:
1
|
docker exec -i -t linkshort bash
|
Эта команда создает оболочку bash в контейнере. Если вам нужно что-то настроить в контейнере, эту команду вы будете использовать. Затем откройте командную оболочку в программе MarianDB:
1
|
mysql -u root
|
Теперь вы можете создавать базы данных в MarianDB и предоставлять разрешения веб-серверу для доступа к нему:
1
2
3
4
|
create database urlshort;
create user ‘www-data’@’localhost’ identified by ‘{{password}}’;
grant all on urlshort.\* to ‘www-data’@’localhost’;
quit;
|
{{password}}
должен быть установлен на пароль, который вы хотите дать пользователю базы данных. Помните об этом, так как вы будете использовать его для настройки сервиса.
Когда служба работает в контейнере, откройте веб-браузер по http://s.dev
.
Если вы выполнили настройку, вы должны увидеть эту страницу. На этой странице показаны требования к службе URL Shortener и состояние вашей настройки. Используя контейнер fauria в Docker, вы уже встретили все зависимости. Нажмите синюю кнопку внизу страницы.
На следующей странице показан создатель файла конфигурации для службы. Эта страница позволяет вам дать программе имя и пароль для базы данных, которую вы создали ранее.
Вам необходимо заполнить эти поля, как показано выше. Узел базы данных является локальным узлом для контейнера. Имя базы данных — это urlshort
, который вы создали в настройке. Пользователь базы данных — это www-data
, а пароль — тот, который вы указали при первоначальной настройке базы данных. Префикс базы данных — это начальное имя для каждой базы данных, созданной для службы. Я использовал short_
. Программа установки устанавливает ключ безопасности . Сохраните копию ключа для дальнейшего использования.
Если бы вы устанавливали его на виртуальном частном сервере (VPS), эти значения соответствовали бы этой услуге. Некоторые будут такими же, а некоторые изменится.
С правильной информацией, нажмите синюю кнопку в нижней части страницы, чтобы перейти к шагу 3.
На экране « Базовая конфигурация» можно указать имя пользователя, адрес электронной почты и пароль администратора. Установите эти значения, которые относятся к вам. URL-адрес сайта должен быть установлен на http://s.dev
как вы установили ранее в файле hosts
. После настройки нажмите синюю кнопку в нижней части экрана.
На следующем экране сообщается, что служба настроена. Нажмите синюю кнопку с надписью Delete install.php
. Это функция безопасности для использования на реальном веб-сервере, но она не требуется для локальной установки. Однако установка не будет завершена, пока вы не сделаете это.
Поздравляем — сервис работает! Вы должны увидеть экран выше. Если вы введете длинный URL-адрес в поле ввода с именем Вставить длинный URL-адрес, а затем нажмете синюю кнопку Сократить , вы получите сокращенный URL-адрес для использования. URL также будет в базе данных для дальнейшего использования. Эта функция делает отличный закладок.
Использование API
Теперь, когда у вас запущена служба сокращения URL-адресов, вы захотите эффективно ее использовать. Но постоянное открытие веб-страницы, даже локальной, замедлит вас. Вы должны сделать это быстрее. Вот где полезно использовать API (интерфейс программирования приложений). Вы можете обратиться к полной документации по API .
Когда служба запущена, откройте страницу http://s.dev/user/settings
.
Вы должны войти в свою учетную запись, чтобы увидеть эту страницу. Справа внизу на боковой панели вы увидите Ваш ключ API: с буквенно-цифровым номером. Скопируйте этот номер и сохраните его. Этот номер дает доступ к API.
Чтобы использовать API, вы можете создать Ruby- программу для доступа к нему. На macOS и Linux Ruby обычно предустановлен. В Windows вам придется установить его.
Минимальная программа на Ruby для создания короткой ссылки:
01
02
03
04
05
06
07
08
09
10
11
12
13
|
require ‘net/http’
require ‘json’
API = ‘{YourAPIKey}’
short = JSON.parse(Net::HTTP.get(‘s.dev’, ‘/api?api=’ + API + ‘&url=’ + ARGV[0]))
if short[«error»] == 0 then
print short[«short»]
else
print «An error happened: «
print short[«error»]
print «\n»
end
|
Сохраните сценарий в файл с именем {YourAPIKey}
, замените {YourAPIKey}
на ключ API, который вы скопировали ранее, и выполните следующую команду в командной строке:
1
|
ruby shortener.rb ‘google.com’
|
Вы должны получить сокращенную ссылку для этого URL. Это создает укороченные URL-адреса, но все еще не удобно.
Создание расширения PopClip
На Mac PopClip — отличная небольшая программа для обработки выделенного текста. Чтобы упростить создание сокращенных ссылок, вы создадите расширение PopClip. Я не собираюсь объяснять все о создании расширения, но вы можете прочитать о механике его выполнения в моем уроке PopClip: Расширения сценариев .
Создайте расширение PremiumURLShortener.popclipext
именем PremiumURLShortener.popclipext
. Используйте следующее для файла Config.plist
внутри каталога расширений:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<?xml version=»1.0″ encoding=»UTF-8″?>
<!DOCTYPE plist PUBLIC «-//Apple//DTD PLIST 1.0//EN» «http://www.apple.com/DTDs/PropertyList-1.0.dtd»>
<plist version=»1.0″>
<dict>
<key>Actions</key>
<array>
<dict>
<key>After</key>
<string>paste-result</string>
<key>Image File</key>
<string>PremiumURLShortener.png</string>
<key>Script Interpreter</key>
<string>/usr/bin/ruby</string>
<key>Shell Script File</key>
<string>PremiumURLShortener.rb</string>
<key>Title</key>
<string>Shortener</string>
</dict>
</array>
<key>Options</key>
<array>
<dict>
<key>Option Identifier</key>
<string>apikey</string>
<key>Option Type</key>
<string>string</string>
<key>Option Label</key>
<string>API Key: </string>
</dict>
</array>
<key>Credits</key>
<array>
<dict>
<key>Name</key>
<string>Richard Guay</string>
<key>Link</key>
<string>http://customct.com</string>
</dict>
</array>
<key>Extension Description</key>
<string>Create shortened URLs with PremiumURLShortener locally</string>
<key>Extension Identifier</key>
<string>com.customct.popclip.extension.premiumurlshortener</string>
<key>Extension Name</key>
<string>Shortener</string>
<key>Required Software Version</key>
<integer>701</integer>
</dict>
</plist>
|
Затем создайте файл сценария для расширения с именем PremiumURLShortener.rb
и поместите в него этот код:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
|
#!/usr/bin/ruby
require ‘net/http’
require ‘json’
Encoding.default_internal = Encoding::UTF_8
Encoding.default_external = Encoding::UTF_8
input = ENV[‘POPCLIP_TEXT’].to_s.strip()
API = ENV[‘POPCLIP_OPTION_APIKEY’].to_s.strip()
short = JSON.parse(Net::HTTP.get(‘s.dev’, ‘/api?api=’ + API + ‘&url=’ + input))
if short[«error»] == 0 then
print short[«short»]
else
print «An error happened: «
print short[«error»]
print «\n»
end
|
Когда вы загружаете новое расширение, оно запрашивает ключ API. Как только вы дадите ему ключ API и нажмете «ОК», его можно будет использовать в PopClip.
Когда вы выбираете ссылку, PopClip откроется со списком параметров. Затем вы выбираете опцию Shortener . Он немного подумает, а затем вставит правильный сокращенный URL. Полное расширение находится в загрузке для этого урока. Теперь вы готовы сделать гораздо больше!
Вывод
Теперь у вас есть не только средство для сокращения частных URL-адресов, вы также знаете, как использовать Docker для запуска локальных контейнеров, простой способ отслеживать используемые вами URL-адреса и способ создания сокращенных ссылок.
Вы также можете использовать скрипт Ruby с Alfred 3 или Keyboard Maestro . Наслаждайтесь использованием нового сервиса и экспериментируйте с другими его функциями.