この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
画像最適化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 は次の過去記事を参照ください。