それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

コマンドからGyazoにアップロード。

コマンドからGyazoにアップロード

gyazoの仕様が変わってアップロードできない。。。

地味に変わってた。GET引数で与えると動かない。

befor

curl  https://upload.gyazo.com/api/upload?access_token=xxxxxxxxxxxx \
  -F imagedata=@example.jpg

After

curl  https://upload.gyazo.com/api/upload \
  -F access_token=4e5d9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
  -F imagedata=@example.jpg

一番手っ取り早いのはcurl

curl  https://upload.gyazo.com/api/upload \
  -F access_token=4e5d9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
  -F imagedata=@example.jpg
  • -F key=value で multipart/form-data のkvを送る
  • -F key=@path/to/file で multipart/form-data のファイルを送る

コレをコマンドにする。

#!/usr/bin/env bash

token=4e******************************

gyazo() 
{
  ## response sample
    #  {
    #      "type": "png",
    #      "thumb_url": "https://i.gyazo.com/thumb/200/_3dxxxxxxxxxxxxxxxxxxxx-png.jpg",
    #      "created_at": "2016-09-26T19:11:33+0000",
    #      "image_id": "bxxxxxxxxxxxxxxxxxxxxxxxxxx",
    #      "permalink_url": "https://gyazo.com/b031xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    #      "url": "https://i.gyazo.com/b0311xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    #  }
    url=$( \
       curl -s  \
           https://upload.gyazo.com/api/upload \
        -F access_token=$token \
           -F "imagedata=@$i" \
       | /usr/bin/ruby \
            -e 'puts JSON.load($stdin.read)["url"]' \
            -r json \
       ) 
    echo $url
  open $url
    return 0
}

for i in "$@"; 
do
  #echo $i;
  if [[  $i = http* ]]; then
      file=$(mktemp);
      curl -s -o $file $i
      i=$file
  fi
  if [ -f "$i" ]; then
    gyazo "$i";
    ## tempファイルを消す
    if [ -f "$file" ] ; then
      /bin/rm $file
    fi
  fi
done

gyazoにパパっと上げるのが楽しい。

2015-07-03 http のURLを引数に取れるようにした。

これで、見つけた画像をパパっとGyazo化することが出来る。

gist.github.com

2016-09-27

画像ファイルのファイル名に空白が含まれれても処理できるようにした

gyazo サイトが機能追加でシンプルさに欠けるので、画像ファイルを直接開くようにした