書き置き。

ほぼ勉強の記録みたいなもんです。

AWSに自分用gyazo的なものを作った

zpn.booth.pm

だいたいのことはここに書いてある。まじで書いてある。読まないで画像だけ見てやると大事なところを読み飛ばして、途端にわからなくなるのでよく読め。何なら一通り最後まで読んでから始めるくらいが良い。

この本に書いてないことと言えば、AWSはよく名前をつけるときに説明を入れるフォームがあるんだけど、これがあとから編集できないことが多い。やらかした・・・って思うことがよくある。作り直すのも面倒なので、説明はよく考えて入力したほうが良い。まじで。

ざっくり流れ

  • gyazo コマンドを実行する
  • マウスカーソルが範囲選択モードに変わる
  • 範囲選択する
  • 画面キャプチャ画像が一時ファイルに保存される
  • API GatewayへPOSTされる
  • APIへはACMで登録したSSL証明書を使ってhttpsアクセスされる
  • Lambdaが動く
  • S3に保存される
  • URL保存されたURLが返ってくる
  • クリップボードにURLが渡される
  • 一時ファイル削除

  • URLをブラウザで開く

  • S3へアップロードされたファイルへhttpsでアクセスする

  • APIやS3へアクセスする際にroute53で名前解決する

カスタマイズ

この本は、Ubuntu Desktop を前提としているので、Macの画面をキャプチャしてPOSTするスクリプトだけカスタマイズした。

.bashrc に API Key を書いた

# Gyazo API Key
export GYAZO_API_KEY='APIキー'

/Users/ユーザー名/bin/gyazo
どこに置いても良いが、既にパスが通ってるところに置くのが楽

#!/bin/sh

URL='https://APIパス'

TEMP=$(mktemp /tmp/XXXXX.png)
WIDTH=800

if [ $# -eq 0 ]; 
    then screencapture -i ${TEMP}
else
    if [ $(identify -format %w ${1}) -gt ${WIDTH} ]; then
        CONVOPT="-resize ${WIDTH}"
    fi
    convert ${CONVOPT} ${1} $TEMP
fi

IMAGE=$(curl -s -H 'content-type: image/png' -H "x-api-key:${GYAZO_API_KEY}" --data-binary "@${TEMP}" -X POST ${URL})
if [ $? -eq 0 ]; then
    open ${IMAGE}
    echo ${IMAGE} | pbcopy
fi
rm -f ${TEMP}

次の4つを追加・変更

  • curl コマンドの引数にAPI KEYを追加
  • import コマンドを screencapture -i へ変更 [mac]
  • xclip -sel c を pbcopy でクリップボードへ送る [mac]
  • ブラウザで開くコマンドを gnome-www-browser から open へ変更 [mac]