PythonからCloudinaryを操作してみた
画像最適化SaaSのCloudinaryをPython SDKから操作する方法を紹介します。
ライブラリのインストール
Cloudinary社がPython SDKを提供し、 GitHub で公開されています。
GitHub - cloudinary/pycloudinary: Python package for cloudinary
pip でインストールします。
$ pip install cloudinary
クレデンシャル設定
Cloudianry API を利用するためのクレデンシャルを設定します。
コンソールのアカウント詳細ページから以下の情報を確認します。
- Cloud name
- API Key
- API Secret
取得した情報を cloudinary.config
で設定します。
import cloudinary cloudinary.config( cloud_name = "demo", api_key = "123", api_secret = "***" )
画像をアップロード
uploader.upload
API で手元にある画像を Cloudinary に登録します。
import cloudinary import cloudinary.uploader from pprint import pprint cloudinary.config( cloud_name = "demo", api_key = "123", api_secret = "***" ) res = cloudinary.uploader.upload(file="test.png", public_id="test") pprint(res)
ローカルファイルのパスは file
引数で指定し、Cloudinaryでの ID は public_id
で指定します。
public_id
を省略すると、y5q56yvkwrv6s5r6kgse.png
のようなランダムな ID を Cloudinary が自動採番します。採番された ID は、レスポンスの public_id
を確認して下さい。
Cloudinary のアップロードは、ローカルファイル以外のデータソースも指定可能です。
S3 にあるオブジェクトを Cloudinary に登録する場合、ユーザーが管理する S3 バケットで設定をおこない、file
引数に S3 パスを指定します。
res = cloudinary.uploader.upload( file="s3://BUCKET-NAME/path/to/img.png", public_id="path/to/img.png")
アップロードした画像一覧を確認
Cloudinary に登録したリソースは resources
でアクセスします。
import cloudinary cloudinary.config( cloud_name = "demo", api_key = "123", api_secret = "***" ) res = cloudinary.api.resources(type="upload", prefix="test/") for img in res["resources"]: print(img)
prefix="test/"
とすることで test
フォルダ以下にアップロードされたリソース一覧を取得できます。
全リソースを取得したい場合は cloudinary.api.resources()
とします。
画像変換用 URL を生成
import cloudinary cloudinary.config( cloud_name = "demo", api_key = "123", api_secret = "***" ) url = cloudinary.CloudinaryImage("test/dog").image( width=250, height=250, quality="auto", fetch_format="auto", secure=True, # HTTPS ) print(url) # <img height="250" src="https://res.cloudinary.com/demo/image/upload/f_auto,h_250,q_auto,w_250/v1/test/dog" width="250"/>
CloudinaryImage
に public ID を渡し、image
関数に変換パラメーターを渡します。
最後に
Cloudinary SDK を利用すると、画像の管理から変換用 URL の生成までプログラマブルに行えます。
今回利用した API の詳細は以下のリンクを参照ください。
- Upload API Reference | Cloudinary
- Image Transformation Reference | Cloudinary
- Admin API Reference | Cloudinary
Cloudinary は Python 以外にも、多くの言語・フレームワーク向けに SDK を提供しています。
Cloudinary Image & Video Management - Documentation Home | Cloudinary
PHP SDK は次の過去記事を参照ください。