Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

独自のローカルプレミアムURL短縮サービスを作成する方法

インターネット上で非常に長いURL(Uniform Resource Locator)に遭遇するでしょう。多くのサイトは、あなたの訪問に関する情報をURLに入れています:言語、場所、識別、スペシャルの参照コード、および他の多くのアイテム。これにより、URLが非常に長くなります。

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
CodeCanyonのプレミアムURL短縮サービス

プレミアムURL短縮サービス コードキャニオン 長いURLを短くする方法です。このチュートリアルでは、システムに独自のURL短縮サービスを設定する方法とその使用方法を説明します。

URL短縮サービスとは何ですか?

インターネットを閲覧するときは常にURLを使用します。特定のWebページとコンテンツを識別します。これらにはフォームや検索エンジンのパラメータが含まれていることが多いため、これらのURLは非常に大きくなる可能性があります。

https://tutsplus.com/tutorials/search/How%20to%20Draw%20Animals:%20Horses,%20Their%20Anatomy%20and%20Poses

このURLは、Tuts +のWebサイトで、「動物の描き方:馬、その解剖学、ポーズ」という文字列を検索するためのものです。この文字列の長さは74文字です。 200文字を超えるURLを見たことがあります。

https://bit.ly/2oO8BqO

bit.lyなどのURL短縮サービスを使用する場合 、はるかに短いURLを取得します。同じURLの長さが15文字になりました。誰かがこのリンクを閲覧すると、bit.lyサーバーはブラウザを完全なURLにリダイレクトします。別のURLをさらに検索すると、サイトの読み込み時間が遅くなりますが、それほど長くはありません。

Dockerのインストール

ローカルサーバーを作成する最も簡単な方法は、仮想化環境を使用することです。ただし、完全なシステムバーチャライザーを実行すると、リソースを大量に消費します。 Dockerは、ターミナルベースのシステム用の最小限のバーチャライザーです。より少ないシステムリソースを使用して、Dockerコンテナ(小さなUNIXサーバー)を実行できます。

システムでコンテナを実行するには、 Dockerをインストールする必要があります 。 Dockerからオペレーティングシステムに適したダウンロードを選択します ウェブサイト。

Dockerをインストールしたら、作成するWebサービスを探すためにシステムを準備する必要があります。これを行うには、システムファイルを変更する必要があります。 / etc / hosts内 LinuxまたはmacOSシステム用のファイルおよびc:\ windows \ System32 \ drivers \ etc \ lmhosts Windowsシステムのファイルには、次のステートメントを入力します。

127.0.0.1 s.dev

この変更により、 https://s.devへのすべての参照が作成されます ローカルシステムに移動します。これは、サービスを構成する前に、サービスに適切なホスト名を与えるために行われます。

開発エリアを作成するには、ディレクトリを作成し、プレミアムURL短縮サービスを配置します その中にファイルを圧縮して展開します。次に、次のディレクトリ構造が必要です。

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
ディレクトリ構造

これは、ファイル main.zipのドキュメントです。 。このファイルも展開します。展開すると、次のディレクトリ構造になります。

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
コードを含むディレクトリ構造

main.zip fileには、サービスのすべてのソースコードファイルとリソースが含まれています。これは、Dockerインスタンスに追加するディレクトリになります。

次に、fauriaからDockerLAMPスタックを取得する必要があります。 Dockerを実行している状態で、ターミナルに次のように入力します。

docker pull fauria/lamp

これにより、Fauria LAMP(Linux、Apache、MySQL、およびPHP)スタックがDockerインストールにダウンロードされます。ダウンロードしたら、次のコマンドでコンテナを作成できます:

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

{{サービスソースディレクトリ}}を置き換えます すべてのソースファイルとリソースを含むディレクトリへの完全なパスを使用します。このコマンドは、 linkshortという名前のコンテナを作成します これはポート80で動作し、すべてのエラーメッセージとログメッセージを標準出力に提供します。

現在、コンテナを停止して再起動するたびに、すべての情報が失われます。再起動するたびにデータベース情報を保持するには、データベース情報をソースコードディレクトリに移動する必要があります。ターミナルウィンドウで、次のコマンドを実行します。

docker exec -i -t linkshort bash
mkdir /var/www/html/data
cp -R /var/lib/MySQL/* /var/www/html/data
exit

最初のコマンドは、コンテナーへのbashシェルを開きます。 2番目のコマンドは、ディレクトリ dataを作成します ソースコードディレクトリにあります。コンテナは、ソースコードディレクトリを / var / www / htmlとして認識します。 ディレクトリ。 3番目のコマンドは、データベース情報をそのディレクトリにコピーします。 exit コマンドはあなたをコンテナから出します。

次に、以下を使用してコンテナを停止します:

docker stop linkshort

コンテナを停止するたびにこのコマンドを使用します。

ここで、適切なデータディレクトリを使用してコンテナを再起動するには、次のコマンドを使用します。

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サーバーでコンテナーを作成しました。これは、サービスを起動するために使用するコマンドです。キーボードエキスパンダータイピネーターを使用しています これを入力してください。

次に、URL短縮サービスのデータベースを作成する必要があります。コンテナに対してもシェルを開く必要があります。新しいターミナルインスタンスで、次のコマンドを入力します。

docker exec -i -t linkshort bash

このコマンドは、bashシェルをコンテナーに作成します。コンテナ内の何かを調整する必要がある場合、これは使用するコマンドです。次に、MarianDBプログラムでコマンドシェルを開きます。

mysql -u root

これで、MarianDBにデータベースを作成し、それにアクセスするためのアクセス許可をWebサーバーに付与できます。

create database urlshort;
create user 'www-data'@'localhost' identified by '{{password}}';
grant all on urlshort.\* to 'www-data'@'localhost';
quit;

{{パスワード}} データベースのユーザーに付与するパスワードに設定する必要があります。これを使用してサービスを構成するので、これを覚えておいてください。

コンテナでサービスを実行している状態で、Webブラウザを開いて https://s.dev

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
要件チェックページ

構成を行った場合は、このページが表示されます。このページには、URL短縮サービスの要件とセットアップのステータスが表示されます。 Dockerでfauriaコンテナーを使用することにより、すべての依存関係がすでに満たされています。ページの下部にある青いボタンをクリックします。

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
データベース構成ページ

次のページは、サービスの構成ファイル作成者です。このページでは、以前に作成したデータベースの名前とパスワードをプログラムに指定できます。

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
データベース構成ページの詳細

上記のように、これらのフィールドに入力する必要があります。 データベースホスト コンテナのローカルホストです。 データベース名 urlshortです 、セットアップで作成しました。 データベースユーザー www-dataです 、およびパスワードは、データベースの初期設定で割り当てたものです。 データベースプレフィックス サービス用に作成された各データベースの開始名です。 short_を使用しました 。インストールプログラムは、セキュリティキーを設定します 。後で参照できるように、与えられたキーのコピーを保管してください。

これを仮想プライベートサーバー(VPS)にインストールする場合、これらの値はそのサービスに応じたものになります。同じものもあれば、変わるものもあります。

適切な情報が揃ったら、ページの下部にある青いボタンを押して、手順3に進みます。

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
基本構成ページ

基本構成 画面では、管理者のユーザー名、電子メール、およびパスワードを設定できます。これらを自分に関係する値に設定します。 サイトのURL https://s.devに設定する必要があります hostsで設定した場合 以前にファイルします。設定したら、画面下部の青いボタンを押します。

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
インストール完了ページ

次の画面は、サービスがセットアップされたことを示しています。 Delete install.phpという青いボタンを押します 。これは実際のウェブサーバーで使用するためのセキュリティ機能ですが、ローカルインストールには必要ありません。ただし、インストールは完了するまで完了しません。

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
プレミアムURL短縮サービスのフロントページ

おめでとうございます—サービスは機能しています!上記の画面が表示されます。 長いURLを貼り付けるという名前の入力フィールドに長いURLを指定した場合 次に、青いボタン短縮を押します 、使用する短縮URLを取得します。 URLは、後で参照できるようにデータベースにもあります。この機能は優れたブックマーク作成者になります。

APIの使用

URL短縮サービスを実行しているので、それをうまく利用したいと思うでしょう。ただし、ローカルのWebページであっても、常にWebページを開くと速度が低下します。あなたはそれをより速くする必要があります。そこで、API(Application Programming Interface)を使用すると便利です。 APIの完全なドキュメントを参照できます。

サービスを実行した状態で、 https://s.dev/user/settingsページを開きます。 。

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
アカウント設定ページ

このページを表示するには、アカウントにログインする必要があります。サイドバーの右下に、 APIキー:が表示されます。 英数字で。その番号をコピーして保存します。この番号により、APIにアクセスできます。

APIを利用するために、ルビーを作成できます それにアクセスするためのプログラム。 macOSおよびLinuxでは、通常、Rubyがプリインストールされています。 Windowsでは、インストールする必要があります。

短いリンクを作成するためのRubyの最小限のプログラムは次のとおりです。

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

スクリプトをshortener.rbという名前のファイルに保存します 、 {YourAPIKey}を置き換えます 前にコピーしたAPIキーを使用して、コマンドラインで次を実行します。

ruby shortener.rb 'google.com'

そのURLの短縮リンクを取得する必要があります。これにより短縮URLが作成されますが、それでも便利ではありません。

PopClip拡張機能の作成

Macでは、 PopClip ハイライトされたテキストを処理するための素晴らしい小さなプログラムです。短縮リンクの作成を簡単にするために、PopClip拡張機能を作成します。拡張機能の作成についてすべてを説明するつもりはありませんが、チュートリアル PopClip:Scripting Extensionsで拡張機能の作成の仕組みについて読むことができます。 。

PremiumURLShortener.popclipextというPopClip拡張機能を作成します 。 Config.plistには以下を使用します 拡張ディレクトリ内のファイル:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://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>https://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という拡張子のスクリプトファイルを作成します。 このコードをその中に配置します:

#!/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キーを指定したら、 OKを押します。 、PopClipで使用できます。

独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法 独自のローカルプレミアムURL短縮サービスを作成する方法
PopClipを使用したURLの短縮

リンクを選択すると、PopClipが開き、オプションのリストが表示されます。次に、短縮者を選択します オプション。しばらく考えてから、適切な短縮URLを貼り付けます。完全な拡張機能は、このチュートリアルのダウンロードに含まれています。これで、さらに多くのことを実行する準備が整いました!

結論

プライベートURL短縮サービスを利用できるだけでなく、Dockerを使用してローカルコンテナーを実行する方法、使用するURLを追跡する簡単な方法、短縮リンクを作成する方法も理解できます。

RubyスクリプトはAlfred3で使用できます またはKeyboardMaestro 同じように。新しいサービスを使用して、他の機能を試してみてください。


  1. MacOS で独自の動的壁紙を作成する方法

    macOS コンピューターをしばらく使用している場合は、動的壁紙が何であるかを知っているでしょう。これらは、時間帯によって変わるものです。そのため、夜間は暗い壁紙が表示され、日中は明るい壁紙が表示されます。 これは、夜間に Web ブラウジングを行う場合に非常に役立ちます。暗い壁紙は画面の輝きを抑え、目の焦点を合わせやすくします。 Apple が提供するデフォルトの壁紙だけを使用するのではなく、独自の動的壁紙を作成したい場合は、どうすればよいですか?良いニュースは、Dynaper という名前の無料アプリがあることです。 Dynaper の使い方 開始する前に、無料版ではこのように画

  2. iOS 12 Beta で独自のミー文字を作成する方法

    最後に、待機は終わり、最も待ち望まれていた iOS アップデートのベータ版がユーザーがダウンロードできるようになりました。新しいアップデートは、長い間 iOS デバイスに求められていたいくつかの素晴らしい機能をもたらします。しかし、予想外のこともありました。 Apple は、Memoji で Animoji を次のレベルに引き上げています。簡単に言えば、ミー文字はあなたに似たアニ文字です。はい、自分の顔を使ってクレイジーな動画を友達に送り続けることができます。したがって、iPhone X に iOS 12 ベータ版をインストールした初期の鳥の数が少ない場合は、ミー文字を作成する方法を次に示しま