コマンドから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化することが出来る。
2016-09-27
画像ファイルのファイル名に空白が含まれれても処理できるようにした
gyazo サイトが機能追加でシンプルさに欠けるので、画像ファイルを直接開くようにした