Image Service では、URL は標準の HTTP GET リクエストでアクセスされ、すべての処理パラメーターは URL の QueyString 内にあります。

処理パラメーターを介した縮小版に対する要求

ソースイメージを処理して返すのには、次の 2 つの形式が使用可能です。

  • URL

    第 3 レベルのドメイン名を介してアクセスします。 http://bucket.<endpoint>/object?x-oss-process=image/action,parame_value

    • Bucket: ユーザーの Image Service チャンネル
    • endpoint: バケットのデータセンターのアクセスドメイン名。
    • Object: Image Service では、オブジェクトはイメージを操作するための基本的なデータ単位です。 OSS インスタンスに指定されたオブジェクトと同一です。 1 つのオブジェクト (つまり各イメージ) の最大サイズは 20 MB です。
    • action: イメージに対して実行される操作。
    • parame: イメージに対して行われる操作を示すパラメーター。
  • 複数のアクションの組み合わせ

    複数のアクションが順番に実行されます。 たとえば、image/resize,w_200/rotate,90 は、イメージを幅 200 に縮小してから 90 度回転させる効果があります。

要求されたバケットが image-demo で、中国 (杭州) にあり、ドメイン名 oss-cn-hangzhou.aliyuncs.com で、要求されたイメージが example.jpg であるとします。 イメージを幅 200 に縮小するための URL 形式は次のとおりです。

http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_200

HTTPS アクセスの URL 形式は次のとおりです。

https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_200

カスタムドメイン名を介してアクセスするための URL 形式は次のとおりです。

http://userdomain/object?x-oss-process=image/action,parame_value

スタイルを介した縮小版の要求

スタイル

Image Service では、イメージ処理操作とパラメーターをエイリアス、つまりスタイルとして保存できます。 スタイルを使用すると、非常に短い URL で一連の操作を実行できます。

  • チャンネルは複数のスタイルを持つことができます。 現在、チャンネルは最大 50 のスタイルを持つことが可能です。
  • スタイルを適用することで、チャンネル内のすべてのオブジェクトを変更できます。 たとえば、スタイル "abc" がチャンネル A にあり、スタイルコンテンツが "100w.jpg" (幅 100 に拡大縮小され、.jpg ファイルとして保存されている) の場合、スタイル "abc" をチャンネル A のすべてのオブジェクトに適用して幅 100 に拡大縮小し、.jpg ファイルとして保存することができます。
  • スタイルはチャンネル内でのみ有効です。チャンネル A のオブジェクトはチャンネル B のスタイルを使用できません。

スタイルの命名規則

  • 名前の長さは 1 から 128 文字です。
  • 数字、大文字または小文字、アンダースコア ( _ )、ハイフン ( - )、およびピリオド ( . ) のみが許可されます。
チャンネル

チャンネルは、イメージ処理の名前空間であり、請求、許可管理、ログ記録、およびその他の高度な機能のための管理エンティティです。 イメージ名は Image Service 内でグローバルに一意であり、変更できません。 最大 10 個のチャンネルを作成できますが、各チャンネル内のオブジェクトの数に制限はありません。

イメージ処理データセンターは OSS データセンターに対応しています。 OSS データセンターでバケットを作成し、Image Service をアクティブにすると、対応するチャンネルはこのデータセンターに属します。 現在、チャンネルは OSS インスタンスのバケットに対応しています。作成できるのは、OSS インスタンスに作成したバケットと同じ名前のチャンネルのみです。

チャンネルの命名規則

  • 小文字の英字、数字、およびハイフン ( - ) のみが許可されています。
  • プロジェクト名の先頭と末尾は、小文字または数字にする必要があります。
  • 長さは 3 から 63 バイトである必要があります。

処理を簡単にするため、指定の処理方法をスタイルとして保存できます。 後に、同じ処理メソッドを呼び出すため、スタイルを指定する必要があります。 スタイルによるイメージ処理の URL 形式は次のとおりです。

http://userdomain/object?x-oss-process=style/name

上記の処理パラメーターは、スタイル style-example として保存されます。 要求された バケット が image-demo中国 (杭州) にあり、ドメイン名が oss-cn-hangzhou.aliyuncs.com、要求されたイメージが example.jpg、そしてイメージアクセスのスタイルが style-example であるとすると、URL の形式は次のように構成されます。

]
http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=style/style-example

HTTPS アクセスの URL 形式は次のとおりです。

https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=style/style-example

SDK を介したアクセス

パブリックバケットには URL を使用してアクセスしますが、プライベートファイルには通常、SDK を使用してアクセスします。 Image Service では、URL は標準の GET 操作でアクセスされるため、Get オブジェクトに追加する必要があるのは処理パラメーターのみです。

例として、Python SDK を使用します。

bucket = oss2. Bucket(oss2. Auth(access_key_id, access_key_secret), endpoint, bucket_name)
key = 'example.jpg'
new_pic = 'new-example.jpg'
process = "image/resize,m_fixed,w_100,h_100" //Scale down the image based on the target width and height
bucket.get_object_to_file(key, new_pic, process=process)

OSS SDK に使用される Image Service の詳細については、SDK のドキュメント内「Image Processing」をご参照ください。 次の表に、一部の SDK で使用されているイメージ処理のリンクを示します。

SDK イメージ処理ドキュメント
Java SDK Image Processing ImageSample.java
Python SDK Image Processing image.py
C# SDK Image Processing ImageProcessSample.cs
PHP SDK Image Processing Image.php
JS SDK Image Processing object.test.js
C SDK Image Processing oss_image_sample.c

イメージ処理の制限

  • サポートされている形式は JPG、PNG、BMP、GIF、WEBP、および TIFF です。
  • 縮小版の幅または高さが指定されていて、比例スケーリングの場合、イメージは既定では片側にスケーリングされます。 幅と高さが固定されている場合は、幅と高さが等しいと仮定してイメージがスケールダウンされます。
  • 拡大縮小されたイメージサイズは制限されています。 対象の縮小版の幅と高さの積は、4096 x 4096 が限界です。また、1 辺の長さは 4096 x 4 が限界です。
  • "resize" が呼び出されても、イメージは既定では拡大されません。 つまり、要求されたイメージがソースイメージより大きい場合は、ソースイメージが返されます。 イメージを拡大したい場合は、パラメーター limit_0 を追加します。
  • 現在、GIF および WEBP イメージは、一度に 1 回ずつ処理してリソースの消費量を減らすことができます。 たとえば、サイズ変更した直後に、GIF または WEBP イメージをクロップすることはできません。