Cloudinaryに画像をアップするフォルダアクション
- デスクトップにあるフォルダに画像を放り込めば、 Cloudinary に自動でアップロードするようにしたい
- 基本的には、 Gyazo.com に画像をアップするフォルダアクション と同じような手順
- Cloudinary API
は、
signature
を作るのが面倒なので、 Ruby SDK を使った
準備
- Cloudinary の Ruby SDK をインストール
gem install cloudinary
アップロード用の Ruby スクリプト
upload.rb
という名前で、Ruby SDK を使ったスクリプトをかくcloud_name
、api_key
、api_secret
は、Cloudinary の Dashboard で確認できる- 画像のファイル名は引数
ARGV[0]
で取得する - アップロードすると、
upload
にレスポンスが Hash 形式で入る - format を
webp
、quality をauto
として画像を取得する場合の URL をクリップボードにコピー&標準出力
require 'cloudinary'
cloud_name = '********'
api_key = '********'
api_secret = '********'
Cloudinary.config do |config|
config.cloud_name = cloud_name
config.api_key = api_key
config.api_secret = api_secret
config.secure = true
end
filename = ARGV[0]
upload = Cloudinary::Uploader.upload(filename, :overwrite => true, :resource_type => "auto")
url = "https://res.cloudinary.com/#{cloud_name}/image/upload/q_auto/v#{upload['version']}/#{upload['public_id']}.webp"
IO.popen('pbcopy', 'w') { |f| f.print url.to_s }
puts url
フォルダアクション
- シェルに
/usr/bin/ruby
を指定することもできるが、バージョンが古い - フォルダ内に
upload.rb
を置いて、rbenv
でインストールしたruby
で実行することにした upload.rb
の動作は前節の通りで、最後に、画像 URL を標準出力に渡す- 画像 URL を変数
url
に入れて、通知するようにした