seyjoh studio blog

自分のほむぺサーバでGyazoれるようにした

ツール 2014年07月16日

古い画像に直接アクセスできない呪い

古い画像に直接アクセスできない呪い

 Gyazo便利ですね。
 画面をドラッグして即キャプチャがアップロードされてURLで共有できる便利なサービスなんですが、公式だと無料ユーザーは履歴から直接キャプチャにアクセスできるのが直近5つまでという悲しい仕様になってます。

 で、どうやらGyazoったキャプチャの保存先を自宅サーバとかに変えられるらしいという話を聞きまして。やってみたら案外すんなりイケてビビりました。
 備忘録がてらやりかたをメモしておきます。

 ちなみに、参考にしたのが以下の記事群

1.サーバ用ファイルを設置

 GyazoのGithubからGyazo/Server/upload.cgiをダウンロードして編集。

 今回は以下の箇所を自分ちに合わせてイイ感じに修正

  • 01行目 #!/usr/bin/env ruby
  • 23行目 dbm = SDBM.open('db/id',0644)
  • 27行目 File.open("data/#{hash}.png","w").print(imagedata)
  • 34行目 cgi.out(headers){"http://gyazo.com/#{hash}.png"}

 修正が終わったら外から見えにくい場所にアップロード。

2.クライアントをビルドする

 公式のツールだと公式の方に画像がアップされちゃうので、自前でexeを作る必要があります。

 参考ページでは既にビルド済みのexeを配布されているようですが、今後バージョンアップに対応するか不明了っていうかやらなさそうだったので。自分でやることにしました。
 Githubのgyazo/GyazowinからZIPダウンロード。

 プロジェクトファイルのコメントに「Updated VC Proj ver to Visual C++ 2008」って書いてあります。どうやら、Visual C++ 2008という数万円から数十万円以上する専門的で、素人が購入することは考えにくいソフトが要るらしいです。持ってねえよ。
 代わりに VisualStudio Express 2013 for Desktop というやつを持ってました。なんとリンク先から無料でインストールできます。悪用厳禁♥

 ダウンロードして解凍したプロジェクトを起動すると、当然2008と2013じゃバージョンが違うのでプロジェクトのアップグレードが発生します。進めていくと「いろいろ足りねーぜ?」ってダイアログが何回か出たりするんですが構わずOKで進めます。

 アップグレードが完了したら、ソースファイルからgyazowin.cppを開いて修正。
以下の箇所を自分ちに合わせてイイ感じに修正

  • 794行目 const TCHAR* UPLOAD_SERVER = _T("upload.gyazo.com");
  • 795行目 const TCHAR* UPLOAD_PATH = _T("/upload.cgi");

 デバッグ開始して、Gyazoれるかどうかテスト。
失敗したらこんなダイアログが出ます。

upload.cgiにきちんとアクセスできなかった時のエラー

upload.cgiにきちんとアクセスできなかった時のエラーメッセージ


upload.cgi側で何か上手くいかなかったときのメッセージ

upload.cgi側で何か上手くいかなかったときのエラーメッセージ

 うまく出来たらビルドしてexeファイルにしましょう。
出来上がったgyazowin.exeを好きなところに置いて完了です。

3.あとやっておきたいこと

 以上をもって、自分ちのサーバでGyazoれるようにするの完了です。

 ただし、画像がアップロードされるだけなので、公式みたくプレビューページが欲しければ自分でこしらえる必要がありますし、画像一覧ページも無いので、必要ならば自作しないとダメぽです。

 プレビューページさえ作ってしまえばTwitterカード申請してtwitter側でプレビュー表示できそうなので、また暇がある時に作りたいなと思います。


コメント

seyjoh.com