プロキシ環境下でどうしても Qiita が見たかった話
背景
私が働く会社では、プロキシに阻まれて Qiita にアクセスすることができません。
勉強会なんかで話を聞いていると、意外と同じような環境の会社があることを聞きます。
でも、どうしても 「 会社でQiitaが見たい!! 」
こんな悩みをある日、AWS の勉強会に参加されていた方に相談をしたら、いいアイデアを頂きました。
最近、AWS の勉強もしていたので実装してみました。
全体像
作成したサービスの簡単な流れとしては、見たい Qiita のページ情報を抜いてきて、社内からでもアクセスできるところに配置し直す感じです。
ちなみに、社内から AWS にアクセスできない場合は、アウトです。
使用したサービス
今回、AWS で使うサービスは主に 3 つです。各サービスの詳細な説明は割愛します。
構成
- 見たい Qiita のページの URL をクエリパラメータとして受け付ける API に GET でリクエスト
- クエリパラメータ(Qiita の URL)を Lambda に渡す
- Lambda から Qiita のページにアクセスし、Markdown を取得
- Markdown → HTML に変換し、S3 に静的コンテンツとして保存
- S3 オブジェクトの保存先 URL をリダイレクト先としてレスポンス
- S3 にリダイレクト
リクエストは、https://qiita.com/guromityan/items/5846fcefd87abcf76f7f の記事を見る場合は以下のようになります。
target
で、見たい記事の URL を指定します。
https://<API Gateway>.ap-northeast-1.amazonaws.com/previewQiita?target=https://qiita.com/guromityan/items/5846fcefd87abcf76f7f
レスポンスは以下のようになります。
{
"statusCode": 301,
"headers": {
"Location": "https://<S3 Bucket>.s3-ap-northeast-1.amazonaws.com/guromityan/5846fcefd87abcf76f7f"
}
}
"sutatusCode": 301
のため、これを受け取ったブラウザは Location
ヘッダに指定された URL にリダイレクトします。遷移先は、Markdown から html に変換した S3 オブジェクトを静的コンテンツとして公開しているページです。
ちなみに私は、Chrome の拡張機能を作って Qiita への URL を自動的に API Gataway を叩くように書き換えています。その話もいつか書こうと思います。
やり方
今回話したかったのは、こんなアイデアもあるんだということなので AWS のサービスの設定方法の説明は割愛します。
Lambda のソースコードは [GitHub] guromityan/previewQiita で公開しておくので、やりたい方は使ってみてください。
[注意]
Lambda で使うには依存ライブラリもまとめて zip で固める必要があるため、docker-compose build
などしてローカルに依存ライブラリを落としてきてください。
Author And Source
この問題について(プロキシ環境下でどうしても Qiita が見たかった話), 我々は、より多くの情報をここで見つけました https://qiita.com/guromityan/items/1de7f3bf0c626bc82f91著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .