PythonからCloudinaryを操作してみた

PythonからCloudinaryを操作してみた

2019.08.31

この記事は公開されてから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 の詳細は以下のリンクを参照ください。

Cloudinary は Python 以外にも、多くの言語・フレームワーク向けに SDK を提供しています。

Cloudinary Image & Video Management - Documentation Home | Cloudinary

PHP SDK は次の過去記事を参照ください。

CloudinaryのPHP SDKを使ってAPIから画像をアップロードしてみた


「AI×SaaSで加速するWeb制作」ウェビナー開催

60分でわかる、Contentful・Cloudinary・v0・Vercelの連携によるWeb制作ワークフロー。
アイデアを即座に形にする 新しい仕組みを 豊富な実践デモ を交えながら解説します。開発のスピードアップ、リソース最適化、コスト削減を実現したい方は必見です。

AI×SaaSで加速するWeb制作ウェビナー

とりあえず申し込む



SaaS導入支援はクラスメソッドに!

クラスメソッドでは Contentful・Cloudinary・v0・Vercel など各種SaaS製品 の導入支援もしております。
具体的に課題をお知らせいただければ、適した商材のご提案も可能です。製品の詳細や支援の内容についてお気軽にお問い合わせください。

クラスメソッドに相談する

この記事をシェアする

関連記事