Object Storage Service (OSS) では、イメージスタイルを使用して、サイズ変更、トリミング、回転、ウォーターマークの追加など、一連の画像処理操作を実行できます。これらの操作を定義するイメージスタイルを作成し、そのスタイルをバケット内の画像に適用することで、迅速な処理と変換が可能です。
注意事項
イメージスタイルがサポートする画像処理パラメーターの詳細については、「画像処理」をご参照ください。
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。OSS と同じリージョンにある他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用してください。OSS のリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、アクセス認証情報は環境変数から取得されます。アクセス認証情報の設定方法の詳細については、「Python 1.0 用 OSS SDK を使用したアクセス認証情報の設定」をご参照ください。
このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。カスタムドメイン名またはセキュリティトークンサービス (STS) を使用して OSSClient インスタンスを作成する場合は、「初期化」をご参照ください。
権限
Alibaba Cloud アカウントは、デフォルトでイメージスタイル操作に必要な権限を持っています。Resource Access Management (RAM) ユーザーとして、または STS を使用してこれらの操作を実行するには、対応する権限が必要です。
イメージスタイルを作成するには、
oss:PutStyle権限が必要です。バケット内の特定のイメージスタイルの情報をクエリするには、
oss:GetStyle権限が必要です。バケットに作成されたすべてのイメージスタイルをクエリするには、
oss:ListStyle権限が必要です。バケット内の特定のイメージスタイルを削除するには、
oss:DeleteStyle権限が必要です。
詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。
イメージスタイルの作成
バケットごとに最大 50 個のイメージスタイルを作成できます。次のコードは、イメージスタイルの作成方法を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントに対応するリージョンを指定します。例:cn-hangzhou。このパラメーターは、V4 署名アルゴリズムを使用する場合に必要です。
region = "cn-hangzhou"
# examplebucket をバケット名に置き換えます。
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# imagestyle などのイメージスタイル名を指定します。
style = 'imagestyle'
# イメージの幅を 200 ピクセルにサイズ変更するなど、イメージスタイルの操作を指定します。
content = 'image/resize,w_200'
# イメージスタイルを作成します。
result = bucket.put_bucket_style(style, content)
print('スタイルが作成されました。ステータスコード: ' + str(result.status))イメージスタイルを作成した後、そのイメージスタイルを使用して画像を処理できます。詳細については、「イメージスタイルを使用した画像の処理」をご参照ください。
指定したイメージスタイルのクエリ
次のコードは、バケット内の指定されたイメージスタイルに関する情報をクエリする方法を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。このコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET を設定してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# endpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、中国 (杭州) リージョンの場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# region を、エンドポイントに対応するリージョン (cn-hangzhou など) に設定します。注意:このパラメーターは V4 署名に必要です。
region = "cn-hangzhou"
# examplebucket をご利用のバケット名に置き換えます。
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# imagestyle などのイメージスタイル名を指定します。
style = 'imagestyle'
# examplebucket バケット内の指定されたイメージスタイルの情報をクエリします。
result = bucket.get_bucket_style(style)
print('name: ' + result.name)
print('content: ' + result.content)すべてのイメージスタイルのクエリ
次のコードは、バケットに作成されたすべてのイメージスタイルをクエリする方法を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。このコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントに対応するリージョン (cn-hangzhou など) を指定します。注意:このパラメーターは V4 署名に必要です。
region = "cn-hangzhou"
# examplebucket をご利用のバケット名に置き換えます。
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# examplebucket バケットに作成されたすべてのイメージスタイルをクエリします。
result = bucket.list_bucket_style()
for sty in result.styles:
print('name: ' + sty.name)
print('content: ' + sty.content)指定したイメージスタイルの削除
次のコードを使用して、examplebucket バケットから指定されたイメージスタイルを削除します。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。このコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET を設定してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# endpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、endpoint を https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントに対応するリージョン (cn-hangzhou など) を設定します。このパラメーターは V4 署名に必要です。
region = "cn-hangzhou"
# examplebucket をご利用のバケット名に置き換えます。
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# imagestyle などのイメージスタイル名を指定します。
style = 'imagestyle'
# 指定されたイメージスタイルを削除します。
result = bucket.delete_bucket_style(style)
print('スタイルは正常に削除されました。戻りステータス: ' + str(result.status))関連ドキュメント
イメージスタイルを作成する API 操作の詳細については、「PutStyle」をご参照ください。
バケット内の特定のイメージスタイルをクエリする API 操作の詳細については、「GetStyle」をご参照ください。
バケット内のすべてのイメージスタイルを一覧表示する API 操作の詳細については、「ListStyle」をご参照ください。
バケット内の特定のイメージスタイルを削除する API 操作の詳細については、「DeleteStyle」をご参照ください。