1. Cloud development

メディア処理スクリプト

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

これはMedia processingウェブスクリプトの一例で、アセットが処理されるたびに(例えば新しいアセットがアップロードされたり、アセットの再現がリフレッシュされたりする時)実行されます。コンテキストからメタデータのプロパティを抽出し、アセットに追加します。

文字

using System.Linq;

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; }

var headers = string.Join(", ", Context.MetadataProperties.Keys.Select(ToCsvValue)); 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);

脚本の説明

このセクションでは、スクリプトを実行順に順に進め、各パートについて説明します。番号付きの項目はシーケンスを記述しており、実行命令ではありません。

  1. スクリプトで使用するライブラリも含めてください。

    using System.Linq;

  2. 資産の関係性をMasterFile取得しましょう。

    var masterFileRelation = await Context.File.GetRelationAsync("MasterFile");

  3. 現在のファイルがマスターファイルかどうかを確認してください。コピーされるのはこのメタデータだけです。

    if (!masterFileRelation.Parents.Any() || !masterFileRelation.Parents.Contains(Context.Asset.Id.Value)) { return; }

  4. プロパティにすでにコンマがあるかどうかを確認し、引用符でそれを脱出するメソッドを作成しましょう。

    string ToCsvValue(object source) { var str = source.ToString(); if (str.Contains(",")) { return "\"" + str + "\""; } return str; }

  5. メタデータヘッダーをcsvに変換します。

    var headers = string.Join(", ", Context.MetadataProperties.Keys.Select(ToCsvValue));

  6. メタデータの値をcsvに変換します。

    var values = string.Join(", ", Context.MetadataProperties.Values.Select(ToCsvValue));

  7. アセットのメタデータプロパティフィールドを取得してください。

    var metadataProp = await Context.Asset.GetPropertyAsync("Metadata");

  8. メタデータをアセットに保存します。

    metadataProp.SetValue(headers + "\n" + values);

  9. 資産を救え。

    await MClient.Entities.SaveAsync(Context.Asset);

セットアップ

  1. M.Asset定義上で文字列プロパティMetadataを作成し、content typeをMultiple linesに設定します。
  2. メタデータ処理スクリプトを作成、公開、有効化します
この記事を改善するための提案がある場合は、 お知らせください!