データ処理機能を使用すると、各オブジェクトがタスクをトリガーします。各タスクでは、処理されたオブジェクトの保存パスを指定する必要があります。オブジェクトが上書きされるのを防ぐには、動的な出力パスを使用する必要があります。変数を使用して、ソースオブジェクトのバケット、オブジェクトキー、アップロード時間などの情報を参照できます。たとえば、動画のフレーム抽出タスクでは、出力パスを oss://test-bucket/{dirname}/{barename}_output.{autoext} に設定できます。これにより、処理されたオブジェクトがソースオブジェクトと同じディレクトリに保存され、source-object-name_output という名前が付けられ、正しい拡張子が自動的に追加されます。
ユースケース
コンソールでのユースケース
-
タスク:処理タスクの出力パスで、ソースオブジェクトの情報を参照できます。たとえば、ドキュメントを JPG 画像に変換するには、出力パスを
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}に設定します。処理中に、{autoext}はjpgに置き換えられます。生成された画像はoss://test-bucket/output/source-directory/source-filename/image-sequence-number.jpgに保存されます。[タスクの作成] ダイアログボックスで、[スタイル] で
doc_to_jpgを選択します。[出力パス] の下に、完全なオブジェクトキーを入力する必要があること、オブジェクトキーには変数を含めることができること、および入力パスと出力パスは異なる必要があることを示すプロンプトが表示されます。[通知設定] セクションで、[メッセージキュー] を選択できます。設定が完了したら、[OK] をクリックします。 -
バッチ処理:バッチ処理ジョブを作成すると、システムは既存の各オブジェクトに対してタスクを生成します。データの上書きを避けるため、出力パスで変数を使用することを推奨します。たとえば、動画からフレームを抽出して PNG 画像として保存するには、出力パスを
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}に設定します。処理中に、{autoext}はpngに置き換えられます。生成された PNG 画像はoss://test-bucket/output/source-directory/source-filename/frame-number.pngに保存されます。[出力設定] セクションで出力パスを設定した後、
key、barename、またはbasename変数を使用する場合は、出力パスが入力パスと異なることを確認してください。これにより、ソースオブジェクトの上書きを防ぎ、無限ループを回避できます。[権限設定] セクションで、[サービスロール] で [AliyunIMMBatchTriggerRole (デフォルトロール)] を選択し、[OK] をクリックします。 -
トリガー:トリガーを作成すると、新しいオブジェクトごとにタスクが生成されます。オブジェクトの上書きを避けるため、出力パスで変数を使用することを推奨します。たとえば、ドキュメントを JPG 画像に変換するためにドキュメント変換トリガーが作成された場合、出力パスを
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}に設定します。処理中に、{autoext}はjpgに置き換えられます。生成された JPG 画像はoss://test-bucket/output/source-directory/source-filename/image-sequence-number.jpgに保存されます。オブジェクトキー、barename、または basename 変数を使用する場合は、オブジェクトの上書きを防ぐため、出力パスが入力パスと異なることを確認してください。[権限設定] セクションで、[サービスロール] で [AliyunIMMBatchTriggerRole (デフォルトロール)] を選択し、[OK] をクリックします。
API のユースケース
-
名前を付けて保存 (
sys/saveas):名前を付けて保存 (sys/saveas) 操作では、b (バケット) および o (オブジェクト) パラメーターが変数をサポートします。たとえば、example.docxという名前のドキュメントの 1 ページから 10 ページを PNG 画像に変換するには、sys/saveasパラメーターをb_e2J1Y2tldH0,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZwに設定します。このパラメーターでは、e2J1Y2tldH0は {bucket} の Base64 エンコードされた値であり、ZG9jX2ltYWdlcy97aW5kZXh9LnBuZwはdoc_images/{index}.pngの Base64 エンコードされた値です。変換された画像は、ソースオブジェクトと同じバケット内の doc_images ディレクトリに、ページ番号に基づいたファイル名 (例: 1.png) で保存されます。 -
タスク:タスクの出力パスは変数をサポートします。たとえば、CreateOfficeConversionTask API を呼び出してドキュメント変換タスクを作成する場合、TargetURI パラメーターを拡張子を含む完全な出力パスに設定する必要があります。TargetURI には、
oss://test-bucket/output/{dirname}/{barename}/{index}.jpgのような変数を含めることができます。
注意事項
-
バッチ処理とトリガーの場合、出力パスがスラッシュ (
/) で終わらない場合、オブジェクトキーには少なくとも 1 つの変数を含める必要があります。これにより、複数の出力オブジェクトが互いに上書きされるのを防ぎます。 -
タスクの出力パスはスラッシュ (
/) で終わることはできませんが、変数を含めることができます。
タスク関連の変数
同期的または非同期的な処理リクエストのタイムスタンプを変数として使用することもできます。たとえば、2022-09-01T02:06:57.798Z に処理リクエストを送信した場合、次の表の変数を使用できます。
|
パラメーター |
説明 |
値の例 |
|
t_year |
リクエストが送信されたときの 4 桁の年 (yyyy) です。 |
|
|
t_mon |
リクエストが送信されたときの 2 桁の月 (mm) です。 |
|
|
t_day |
リクエストが送信されたときの 2 桁の日 (dd) です。 |
|
|
t_hour |
リクエストが送信されたときの時間 (HH、24 時間形式) です。 |
|
|
t_min |
リクエストが送信されたときの分 (mm) です。 |
|
|
t_sec |
リクエストが送信されたときの秒 (SS) です。 |
|
画像処理の変数
oss://test-bucket/path1/path2/name.png という名前のソースオブジェクトが 2022-04-22 14:38:25 にアップロードされた場合、次の表の変数を使用できます。
|
パラメーター |
説明 |
値の例 |
|
bucket |
ソースオブジェクトが保存されているバケットの名前です。 |
|
|
key |
バケット内のソースオブジェクトのオブジェクトキーです。 重要
この変数を使用する場合、出力パスとソースパスを同一に設定しないでください。同一に設定すると、ソースオブジェクトを上書きしたり、バッチ処理ジョブで無限ループを引き起こしたりする可能性があります。 |
|
|
dirname |
ソースオブジェクトのディレクトリパスです。 重要
この変数を使用する場合、出力パスとソースパスを同一に設定しないでください。同一に設定すると、ソースオブジェクトを上書きしたり、バッチ処理ジョブで無限ループを引き起こしたりする可能性があります。 |
|
|
barename |
拡張子を除いたソースオブジェクトの名前です。 重要
この変数を使用する場合、出力パスとソースパスを同一に設定しないでください。同一に設定すると、ソースオブジェクトを上書きしたり、バッチ処理ジョブで無限ループを引き起こしたりする可能性があります。 |
|
|
basename |
拡張子を含むソースオブジェクトの名前です。 重要
この変数を使用する場合、出力パスとソースパスを同一に設定しないでください。同一に設定すると、ソースオブジェクトを上書きしたり、バッチ処理ジョブで無限ループを引き起こしたりする可能性があります。 |
|
|
ext |
ソースオブジェクトの拡張子です。拡張子は、自動検出された |
|
|
year |
ソースオブジェクトがアップロードされたときの 4 桁の年 (yyyy) です。 |
|
|
mon |
ソースオブジェクトがアップロードされたときの 2 桁の月 (mm) です。 |
|
|
day |
ソースオブジェクトがアップロードされたときの 2 桁の日 (dd) です。 |
|
|
hour |
ソースオブジェクトがアップロードされたときの時間 (HH、24 時間形式) です。 |
|
|
min |
ソースオブジェクトがアップロードされたときの分 (mm) です。 |
|
|
sec |
ソースオブジェクトがアップロードされたときの秒 (SS) です。 |
|
ドキュメント変換の変数
ドキュメント変換では、ページ番号やシート名などの変数を使用できます。たとえば、sheet1 という名前のシートを含む Excel ドキュメントを JPG 画像に変換する場合、次の表の変数を使用できます。
|
パラメーター |
説明 |
値の例 |
|
autoext |
ドキュメント変換タスクにおける出力オブジェクトの拡張子です。 |
|
|
index |
出力インデックスで、1 から始まります。Word、PDF、および PPT ドキュメントの場合、この変数はページ番号を表します。Excel ドキュメントの場合、sheetindex_sheetsubindex の形式になります。 |
Word、PDF、PPT の場合: Excel の場合: |
|
sheetname |
Excel ドキュメント内のシートの名前です。 |
|
|
sheetindex |
Excel ドキュメント内のシートのインデックスで、1 から始まります。 |
|
|
sheetsubindex |
Excel ドキュメント内のシートのサブインデックスで、1 から始まります。 |
|
メディア処理の変数
メディア処理では、コンテナの拡張子や解像度などの変数を使用できます。たとえば、video.mp4 という名前の動画を解像度 1920x1080 の ts セグメントにトランスコードする場合、次の表の変数を使用できます。
|
パラメーター |
説明 |
値の例 |
|
autoext |
メディア処理タスクにおける出力オブジェクトの拡張子です。 |
|
|
index |
出力インデックスで、1 から始まります。これは、セグメント化されたトランスコーディングやフレーム抽出などの複数出力シナリオで使用されます。 |
|
|
streamindex |
オーディオまたはビデオストリームの ID です。オーディオとビデオストリームの ID は、それぞれ独立して 0 から順に増加します。 |
|
|
resolution |
トランスコーディングに設定された解像度です。これは動画トランスコーディングでのみ利用可能です。 |
|
REST API の使用
アプリケーションに高度なカスタマイズが必要な場合は、RESTful API を直接呼び出すことができます。そのためには、署名を手動で計算するコードを記述する必要があります。
処理パラメーターまたはスタイルパラメーターを PostObject リクエストに追加することで、オブジェクトを処理できます。詳細については、「名前を付けて保存」をご参照ください。
例 1:ドキュメント形式の変換
次の RESTful API の例は、処理パラメーターを PostObject リクエストに追加して example.docx の形式を変換する方法を示しています。名前を付けて保存 (sys/saveas) 操作の b (バケット) および o (オブジェクト) パラメーターでは変数を使用できます。
-
pages_MS0xMA:ドキュメントの 1 ページから 10 ページを変換します。MS0xMAは "1-10" の Base64 エンコードされた値です。 -
target_png:ドキュメントを PNG 画像形式に変換します。 -
source_docx:ソースオブジェクトのタイプが DOCX であることを指定します。 -
sys/saveas:名前を付けて保存。-
b_e2J1Y2tldH0:トランスコーディング完了後、{bucket} 変数によって、生成された画像がソースバケットに保存されます。e2J1Y2tldH0は {bucket} の Base64 エンコードされた値です。 -
o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw:オブジェクトをdoc_imagesディレクトリに保存します。オブジェクトキーでは、example.docxのページ番号に対応する{index}変数を使用します。ZG9jX2ltYWdlcy97aW5kZXh9LnBuZwはdoc_images/{index}.pngの Base64 エンコードされた値です。
-
POST /example.docx?x-oss-async-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// example.docx オブジェクトの 1 ページから 10 ページを PNG 画像に変換します。処理されたオブジェクトは oss://source-bucket/doc_images/page-number.png に保存されます。
x-oss-async-process=doc/convert,pages_MS0xMA,target_png,source_docx|sys/saveas,b_e2J1Y2tldH0,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw
例 2:動画トランスコーディング
この例では、複数の処理パラメーターを設定して example.avi オブジェクトをトランスコードする方法を示します。
-
f_mp4:トランスコードされたメディアファイルのコンテナを MP4 に設定します。 -
vcodec_h265:ビデオストリームの形式を H.265 に設定します。 -
s_1920x1080:解像度を 1920x1080 に設定します。 -
vb_2000000:ビデオビットレートを 2 Mbps に設定します。 -
fps_30:ビデオフレームレートを 30 fps に設定します。 -
acodec_aac:オーディオエンコーディング形式を AAC に設定します。 -
ab_100000:オーディオビットレートを 100 Kbps に設定します。 -
sn_1:字幕ストリームを無効にします。 -
sys/saveas:名前を付けて保存。-
b_e2J1Y2tldH0:トランスコーディング完了後、{bucket} 変数を使用して、生成されたオブジェクトがソースバケットに保存されます。e2J1Y2tldH0は {bucket} の Base64 エンコードされた値です。 -
o_b3V0cHV0LnthdXRvZXh0fQ:{autoext} 変数によってオブジェクトに自動的に拡張子が追加され、output.mp4という名前のオブジェクトとして保存されます。b3V0cHV0LnthdXRvZXh0fQはoutput.{autoext}の Base64 エンコードされた値です。
-
POST /example.avi?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
x-oss-async-process=video/convert,f_mp4,vcodec_h265,s_1920x1080,vb_2000000,fps_30,acodec_aac,ab_100000,sn_1|sys/saveas,b_e2J1Y2tldH0,o_b3V0cHV0LnthdXRvZXh0fQ