1. メディア配信API

承認済みアセットの公開リンクを自動的に作成する

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

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

アセットが多数あり、承認後にそれらすべての公開リンクを作成する必要がある場合は、Sitecore Content Hubのアクションとトリガーを使用する方が簡単で迅速です。これにより、アセットが承認されるとすぐに公開リンクが自動的に作成されます。

このチュートリアルでは、公開リンクの作成を自動化する方法と、次の方法について説明します。

スクリプトの作成

最初の手順は、リンクがまだ存在しない場合に、元のアセット レンディションの公開リンクの作成を自動化するようにContent Hubに指示する スクリプト を作成することです。

スクリプトを作成するには:

  1. メニュー バーで、Manage cog icon をクリックします。

  2. Manageページで、「Scripts」をクリックします。

  3. Scriptsページで、plus sign Scriptをクリックします。

  4. Scriptダイアログで、次のフィールドに入力します。

    形容

    Name

    スクリプトの名前 (例: CreateAssetPublicLinkOnApproval.

    Type

    スクリプトの種類 ( Actionなど)

    Description

    スクリプトの説明 (オプション)。

  5. Save」をクリックします。

  6. Scriptsページで、作成したCreateAssetPublicLinkOnApprovalスクリプトをクリックします。

  7. スクリプトの詳細ページの右上隅にあるEditをクリックします。

  8. スクリプトエディタで、次のコードを入力します。

    using System.Linq;
    using System.Threading.Tasks;
    
    var assetId = Context.TargetId;
    
    // Check if public links don't exist yet
    var query = Query.CreateQuery(entities => from e in entities
      where e.DefinitionName == "M.PublicLink"
      && e.Parent("AssetToPublicLink") == assetId.Value
      && e.Property("Resource") == "downloadOriginal"
      && e.Property("IsDisabled") == false
      select e);
    query.Take = 1;
    
    var result = await MClient.Querying.QueryIdsAsync(query);
    if (result.TotalNumberOfResults > 0)
    {
      MClient.Logger.Info("Public links already exist for asset with id '" + assetId + "'");
      return;
    }
    
    // Create public links
    await CreateForRendition("downloadOriginal", assetId.Value);
    MClient.Logger.Info("Created public link 'downloadOriginal' for asset with id '" + assetId + "'");
    
    async Task CreateForRendition(string rendition, long assetId)
    {
      var publicLink = await MClient.EntityFactory.CreateAsync("M.PublicLink");
    
      if (publicLink.CanDoLazyLoading())
      {
        await publicLink.LoadMembersAsync(new PropertyLoadOption("Resource"), new RelationLoadOption("AssetToPublicLink"));
      }
    
      publicLink.SetPropertyValue("Resource", rendition);
    
      var relation = publicLink.GetRelation<IChildToManyParentsRelation>("AssetToPublicLink");
      if (relation == null)
      {
        MClient.Logger.Error("Unable to create public link: no AssetToPublicLink relation found.");
        return;
      }
    
      relation.Parents.Add(assetId);
    
      await MClient.Entities.SaveAsync(publicLink);
    }
  9. Save changes」をクリックします。

  10. Build」をクリックします。

  11. Publish」をクリックします。

    The script details page.

アクションを作成する

次の手順では、CreateAssetPublicLinkOnApprovalスクリプトに基づいてアクションを作成します。

アクションを作成するには:

  1. Manageページで、「Actions」をクリックします。

  2. Actionsページで、「New action」をクリックします。

  3. New actionダイアログで、次のフィールドに入力します。

    形容

    Name

    アクションの名前。スクリプト名 ( CreateAssetPublicLinkOnApproval) を使用できます。

    Label

    アクションのオプションのラベル。

    Type

    このアクションのタイプ。この例では、「 Action script」を選択します。

    Script

    使用するスクリプト (例: CreateAssetPublicLinkOnApproval.

  4. Save」をクリックします。

トリガーを作成する

最後のステップは、アセットが承認されるたびに公開リンクを作成するトリガーを作成することです。

トリガーを作成するには:

  1. Manageページで、「Triggers」をクリックします。

  2. Triggersページで、「New trigger」をクリックします。

  3. トリガー作成ページのGeneralタブで、次のフィールドに入力します。

    形容

    Name

    トリガーの名前 ( CreateAssetPublicLinkOnApprovalなど)

    Description

    必要に応じて、アクションのラベルを入力します。

    Objective

    Entity creationEntity modificationを選択します。

    Execution type

    In processを選択します。

  4. ConditionsタブでAdd definitionをクリックし、ドロップダウン リストでAsset (M.Asset) をクリックします。

  5. 条件リストで、「 Final lifecycle status」、「 current value」、「 contains」、「 all」、および「 Approved」を選択します。

    Example of the trigger conditions.
  6. Actions 」タブの「 Post actions」で、「 Add action 」をクリックし、作成したアクションを選択します。

  7. Save and close」をクリックします。

  8. Saveダイアログで、「Activate」をクリックしてトリガーをアクティブにします。

    トリガーがアクティブになると、アセットが承認された直後に公開リンクが作成されます。

    Example of a public link created automatically upon approval.
この記事を改善するための提案がある場合は、 お知らせください!