1. 検証フェーズのスクリプト

アクション スクリプトの例 (検証フェーズ)

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

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

以下に、アセットが作成または変更されたときに検証フェーズ (処理中) のトリガーによって実行されるアクション スクリプトの例を示します。 このスクリプトは、アセットのファイル名に有効な Web 拡張子が付いているかどうかを検証します。

ユース ケース

  1. ユーザーがアセットを作成または変更します。
  2. アセットのファイル名に有効な Web 拡張子が付いていない場合は、例外がスローされます。

スクリプト

using System.Linq;

var webExtensions = new[] { ".jpg", ".jpeg", ".png", ".gif" };

var entity = Context.Target as IEntity;

var filename = await entity.GetPropertyValueAsync<string>("FileName");
if (string.IsNullOrEmpty(filename)) return;

var extension = GetExtension(filename)?.ToLowerInvariant();

if (string.IsNullOrEmpty(extension)) return;

if (!webExtensions.Contains(extension))
{
    throw new ValidationException(
        "The asset is not valid.",
        new ValidationFailure("The file's extension must be the extension of a valid web filetype.", filename));
}

string GetExtension(string path)
{
    var tokens = path.Split('.');
    if (tokens.Length > 1)
    {
        return "." + tokens[tokens.Length - 1];
    }
    return null;
}

スクリプトの説明

  1. スクリプトで使用するライブラリをインクルードします。
この記事を改善するための提案がある場合は、 お知らせください!