メディア処理スクリプト
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
これはMedia processingウェブスクリプトの一例で、アセットが処理されるたびに(例えば新しいアセットがアップロードされたり、アセットの再現がリフレッシュされたりする時)実行されます。コンテキストからメタデータのプロパティを抽出し、アセットに追加します。
文字
using System.Linq;
var masterFileRelation = await Context.File.GetRelationAsync
if (!masterFileRelation.Parents.Any() || !masterFileRelation.Parents.Contains(Context.Asset.Id.Value)) { return; }
string ToCsvValue(object source) { var str = source.ToString(); if (str.Contains(",")) { return "\"" + str + "\""; } return str; }
var headers = string.Join(", ", Context.MetadataProperties.Keys.Select(ToCsvValue)); var values = string.Join(", ", Context.MetadataProperties.Values.Select(ToCsvValue));
var metadataProp = await Context.Asset.GetPropertyAsync
await MClient.Entities.SaveAsync(Context.Asset);
脚本の説明
このセクションでは、スクリプトを実行順に順に進め、各パートについて説明します。番号付きの項目はシーケンスを記述しており、実行命令ではありません。
-
スクリプトで使用するライブラリも含めてください。
using System.Linq;
-
資産の関係性をMasterFile取得しましょう。
var masterFileRelation = await Context.File.GetRelationAsync
("MasterFile"); -
現在のファイルがマスターファイルかどうかを確認してください。コピーされるのはこのメタデータだけです。
if (!masterFileRelation.Parents.Any() || !masterFileRelation.Parents.Contains(Context.Asset.Id.Value)) { return; }
-
プロパティにすでにコンマがあるかどうかを確認し、引用符でそれを脱出するメソッドを作成しましょう。
string ToCsvValue(object source) { var str = source.ToString(); if (str.Contains(",")) { return "\"" + str + "\""; } return str; }
-
メタデータヘッダーをcsvに変換します。
var headers = string.Join(", ", Context.MetadataProperties.Keys.Select(ToCsvValue));
-
メタデータの値をcsvに変換します。
var values = string.Join(", ", Context.MetadataProperties.Values.Select(ToCsvValue));
-
アセットのメタデータプロパティフィールドを取得してください。
var metadataProp = await Context.Asset.GetPropertyAsync
("Metadata"); -
メタデータをアセットに保存します。
metadataProp.SetValue(headers + "\n" + values);
-
資産を救え。
await MClient.Entities.SaveAsync(Context.Asset);
セットアップ
- M.Asset定義上で文字列プロパティMetadataを作成し、content typeをMultiple linesに設定します。
- メタデータ処理スクリプトを作成、公開、有効化します。