データ処理機能を使用する場合、各オブジェクトは、処理済みファイルに特定の保存パスを必要とするタスクをトリガーします。ファイルの上書きを防ぐには、出力パスが動的であることを確認する必要があります。出力パスでは、バケット名、オブジェクト名、オブジェクトがアップロードされた時刻など、ソースオブジェクトに関する情報を使用できます。たとえば、ビデオフレーム抽出タスクの出力パスを oss://test-bucket/{dirname}/{barename}_output.{autoext}
として指定します。処理済みオブジェクトの名前は ソースオブジェクト名_output
になります。処理済みオブジェクトには接尾辞が自動的に追加されます。
シナリオ
OSS コンソールでの使用シナリオ
タスク: データ処理タスクでは、出力パスでソース オブジェクトに関する情報を使用できます。たとえば、ドキュメントを jpg 画像に変換する場合、出力パスを
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}
に設定できます。ここで、{autoext}
はドキュメント変換タスク中にjpg
に置き換えられます。処理済みオブジェクトはoss://test-bucket/output/ソースオブジェクトディレクトリ/ソースオブジェクト名/画像シリアル番号.jpg
に保存されます。バッチ処理: バッチ処理ジョブが作成されると、データ処理タスクが生成されます。上書きを防ぐため、処理済みオブジェクトの出力パスに変数を指定することをお勧めします。たとえば、複数のビデオから一度に png フレームをキャプチャする場合、png フレームの出力パスを
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}
に設定します。ここで、{autoext}
はpng
に置き換えられます。 png フレームはoss://test-bucket/output/ソースビデオディレクトリ/ソースビデオ名/フレームシーケンス番号.png
に保存されます。トリガー: トリガーを作成すると、新しいオブジェクトごとにタスクが作成されます。上書きを防ぐため、トリガーを作成するときに、処理済みオブジェクトの出力パスに変数を指定することをお勧めします。たとえば、ドキュメントを jpg 画像に変換するトリガーを作成する場合、jpg 画像の出力パスを
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}
に設定します。ここで、{autoext}
はドキュメント変換タスク中にjpg
に置き換えられます。 jpg 画像はoss://test-bucket/output/ソースオブジェクトディレクトリ/ソースオブジェクト名/画像シーケンス番号.jpg
に保存されます。
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 エンコード値です。この場合、png 画像はソースオブジェクトと同じバケットに保存され、png 画像の出力パスはdoc_images/index.png
になります。タスク: データ処理タスクの処理済みオブジェクトの出力パスには、変数を含めることができます。CreateOfficeConversionTask 操作を呼び出してドキュメント変換タスクを作成する場合、TargetURI パラメーターをファイル拡張子を含む処理済みオブジェクトの完全な出力パスに設定する必要があります。 TargetURI パラメーターでは変数を使用できます。例:
oss://test-bucket/output/{dirname}/{barename}/{index}.jpg
。
使用上の注意
バッチ処理ジョブまたはトリガータスクの処理済みオブジェクトの出力パスがスラッシュ (
/
) で終わっていない場合は、処理済みオブジェクトの名前に少なくとも 1 つの変数を含める必要があります。そうしないと、複数の処理済みオブジェクトが互いに上書きされる可能性があります。データ処理タスクの処理済みオブジェクトの出力パスはスラッシュ (
/
) で終わることはできませんが、変数で終わることはできます。
データ処理タスクに関連する変数
リクエストが同期または非同期で処理される時点を変数として使用できます。たとえば、2022-09-01T02:06:57.798Z に送信されたリクエストで、次の表の変数を使用できます。
変数 | 説明 | 例 |
t_year | リクエストが送信された年。形式: yyyy。 |
|
t_mon | リクエストが送信された月。形式: mm。 |
|
t_day | リクエストが送信された日。形式: dd。 |
|
t_hour | リクエストが送信された時間。形式: HH。 |
|
t_min | リクエストが送信された分。形式: MM。 |
|
t_sec | リクエストが送信された秒。形式: SS。 |
|
IMG に関連する変数
この例では、2022-04-22 14:38:25
にアップロードされた oss://test-bucket/path1/path2/name.png
という名前のソース オブジェクトでデータ処理タスクが実行されます。データ処理タスクの処理済みオブジェクトの出力パスには、次の表の変数を含めることができます。
変数 | 説明 | 例 |
bucket | ソース オブジェクトが格納されているソース バケットの名前。 |
|
key | ソース バケット内のソース オブジェクトの名前。 重要 処理済みオブジェクトの名前をソース オブジェクトの名前に設定しないでください。そうしないと、ソース オブジェクトが上書きされるか、バッチ処理中にデータ処理タスクがループで実行されます。 |
|
dirname | ソース オブジェクトが格納されているディレクトリ。 重要 処理済みオブジェクトの名前をソース オブジェクトの名前に設定しないでください。そうしないと、ソース オブジェクトが上書きされるか、バッチ処理中にデータ処理タスクがループで実行されます。 |
|
barename | 拡張子を除くソース オブジェクトの名前。 重要 処理済みオブジェクトの名前をソース オブジェクトの名前に設定しないでください。そうしないと、ソース オブジェクトが上書きされるか、バッチ処理中にデータ処理タスクがループで実行されます。 |
|
basename | 拡張子を含むソース オブジェクトの名前。 重要 処理済みオブジェクトの名前をソース オブジェクトの名前に設定しないでください。そうしないと、ソース オブジェクトが上書きされるか、バッチ処理中にデータ処理タスクがループで実行されます。 |
|
ext | ソース オブジェクトの拡張子。Multipurpose Internet |
|
year | ソース オブジェクトがアップロードされた年。形式: yyyy。 |
|
mon | ソース オブジェクトがアップロードされた月。形式: mm。 |
|
day | ソース オブジェクトがアップロードされた日。形式: dd。 |
|
hour | ソース オブジェクトがアップロードされた時間。形式: HH。 |
|
min | ソース オブジェクトがアップロードされた分。形式: MM。 |
|
sec | ソース オブジェクトがアップロードされた秒。形式: SS。 |
|
ドキュメント変換に関連する変数
ドキュメント変換タスクでは、ページ番号とシート名を変数として使用できます。たとえば、sheet1 という名前のシートが 1 つ含まれている Excel オブジェクトを JPG 画像に変換する場合、JPG 画像の出力パスで次の表の変数を使用できます。
変数 | 説明 | 例 |
autoext | 処理済みオブジェクトの拡張子。 |
|
index | ソース オブジェクト内のコンテンツのシーケンスを指定するインデックス。行番号は 1 から始まります。Word、PDF、PPT オブジェクトの場合、変数はページ番号です。Excel オブジェクトの場合、パラメーターは sheetindex_sheetsubindex です。 | Word、PDF、PPT の場合: Excel の場合: |
sheetname | Excel オブジェクト内のシートの名前。 |
|
sheetindex | Excel オブジェクト内のシートのインデックス。最小値: 1。 |
|
sheetsubindex | Excel オブジェクト内のシートのサブインデックス。最小値: 1。 |
|
メディア処理に関連する変数
コンテナの拡張子や解像度などの項目は、メディア処理の変数として使用できます。たとえば、video.mp4 という名前のビデオでマルチパート トランスコーディングを実行して、解像度が 1920 x 1080 の処理済み ts ビデオを取得する場合、処理済みビデオの出力パスで次の表の変数を使用できます。
変数 | 説明 | 例 |
autoext | メディア処理の処理済みオブジェクトの拡張子。 |
|
index | ソース オブジェクト内のコンテンツのシーケンスを指定するインデックス。行番号は 1 から始まります。変数は、マルチパート トランスコーディングとスナップショットのキャプチャに使用されます。 |
|
streamindex | オーディオ ストリームとビデオ ストリームの ID。最小値: 0。 |
|
resolution | 処理済みオブジェクトの解像度。この変数はビデオでのみ使用できます。 |
|
OSS API の使用
ビジネスで高度なカスタマイズが必要な場合は、RESTful API を直接呼び出すことができます。API を直接呼び出すには、コードに署名計算を含める必要があります。
ソース オブジェクトを処理するために、PostObject リクエストで処理パラメーターまたはスタイル パラメーターを指定できます。詳細については、「sys/saveas」をご参照ください。
例 1: ドキュメント変換
次の例では、PostObject リクエストで処理パラメーターを指定して、example.docx オブジェクトの形式を変換します。 sys/saveas パラメーターの b オプションと o オプションは、処理済みオブジェクトの出力パスで変数として使用されます。
pages_MS0xMA: example.docx オブジェクトの 1 ページ目から 10 ページ目までを変換します。MS0xMA は 1 から 10 までの Base64 エンコード値です。
target_png: example.docx オブジェクトの形式を png に変換します。
source_docx: ソース オブジェクトのタイプが docx であることを指定します。
sys/saveas: 処理済みオブジェクトを特定のバケットに保存します。
b_e2J1Y2tldH0: ドキュメント変換タスクが完了すると、{bucket} 変数を指定することで、処理済みオブジェクトがソース バケットに保存されます。 e2J1Y2tldH0 は {bucket} の Base64 エンコード値です。
o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw: 出力オブジェクトを doc_images ディレクトリに保存し、対応するページ番号を index 変数で指定された名前 (ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw は doc_images/{index}.png の Base64 エンコード値) として使用します。
POST /exmaple.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: OSS qn6q**************:77Dv****************
// example.docx オブジェクトの 1 ページ目から 10 ページ目を png オブジェクトに変換し、png オブジェクトを oss://ソースバケット/doc_images/ページ番号.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: 解像度を 1920 x 1080 に設定します。
vb_2000000: ビデオ ビットレートを 2 Mbit/s に設定します。
fps_30: ビデオ フレームレートを 30 fps に設定します。
acodec_aac: オーディオ エンコード形式を AAC に設定します。
ab_100000: オーディオ ビットレートを 100 Kbit/s に設定します。
sn_1: 字幕ストリームを無効にします。
sys/saveas: 処理済みオブジェクトを特定のバケットに保存します。
b_e2J1Y2tldH0: ビデオ トランスコーディング タスクが完了すると、{bucket} 変数を指定することで、処理済みオブジェクトがソース バケットに保存されます。 e2J1Y2tldH0 は {bucket} の Base64 エンコード値です。
o_b3V0cHV0LnthdXRvZXh0fQ: {autoext} 変数は、output.mp4 という名前の処理済みオブジェクトに拡張子を自動的に追加するために指定されています。 b3V0cHV0LnthdXRvZXh0fQ は output.{autoext} の Base64 エンコード値です。
POST /exmaple.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: OSS qn6q**************:77Dv****************
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