---
title: "承認された資産の公開リンクを自動的に作成します"
slug: "create-public-links-for-approved-assets-automatically"
abstract: "承認されたアセットの公開リンクを自動生成するために、スクリプト、アクション、トリガーの使い方。"
---
# 承認された資産の公開リンクを自動的に作成します

多くのアセットがあり、承認後にすべてのパブリックリンクを作成する必要がある場合、Sitecore Content Hubのアクションやトリガーを使う方が簡単かつ速いです。こうすることで、アセットが承認されるとすぐに公開リンクが自動的に作成されます。

このウォークスルーでは、公開リンクの作成を自動化する方法と、以下の方法について説明します:

-   [スクリプトを作成してください](https://doc.sitecore.com/ch/ja/developers/cloud-dev/create-public-links-for-approved-assets-automatically.html#UUID-7b6bb34b-da8a-64a0-8d48-d3e7f7eef204_N1715005436031 "Create a script")
-   [アクションを作成する](https://doc.sitecore.com/ch/ja/developers/cloud-dev/create-public-links-for-approved-assets-automatically.html#UUID-7b6bb34b-da8a-64a0-8d48-d3e7f7eef204_N1715005449688 "Create an action")
-   [トリガーを作成する](https://doc.sitecore.com/ch/ja/developers/cloud-dev/create-public-links-for-approved-assets-automatically.html#UUID-7b6bb34b-da8a-64a0-8d48-d3e7f7eef204_N1715005464600 "Create a trigger")

## スクリプトを作成してください

最初のステップは、Content Hubに元のアセットの公開リンクが存在しない場合に自動生成するよう指示する [スクリプト](https://doc.sitecore.com/ch/ja/developers/cloud-dev/scripts.html "Scripts") を作成することです。

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

1.  メニューバーで **「管理** :mdiCogOutline:」をクリックします。
    
2.  **管理**ページで**スクリプト**をクリックします。
    
3.  **スクリプト**ページで :mdiPlus: **Script**をクリックしてください。
    
4.  **スクリプト**ダイアログで、以下のフィールドを埋めてください:
    
    フィールド
    
    概要
    
    **名称**
    
    例えば、あなたのスクリプトの名前は *CreateAssetPublicLinkOnApproval*。
    
    **種類**
    
    例えば、スクリプトタイプは *Action*。
    
    **概要**
    
    スクリプトの任意の説明です。
    
5.  **「保存**」をクリックします。
    
6.  **スクリプト**ページで作成した*CreateAssetPublicLinkOnApproval*スクリプトをクリックします。
    
7.  スクリプト詳細ページ右上で **「編集**」をクリックします。
    
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.  「 **変更を保存**」をクリックします。
    
10.  「 **ビルド**」をクリックします。
     
11.  **「公開**」をクリックします。
     
     ![The script details page.](https://doc.sitecore.com/api/markdown-image/ch/ja/developers/cloud-dev/images/step_one_-_create_a_script.png)
     

## アクションを作成する

次のステップは、*CreateAssetPublicLinkOnApproval*スクリプトに基づいて[アクション](https://doc.sitecore.com/ch/ja/developers/cloud-dev/create-an-action.html "Create an action")を作成することです。

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

1.  **管理**ページで「**アクション**」をクリックします。
    
2.  **アクションページで「****新しいアクション**」をクリックします。
    
3.  **新しいアクション**ダイアログで、以下のフィールドを埋めてください:
    
    フィールド
    
    概要
    
    **名称**
    
    あなたのアクションの名前です。スクリプト名、すなわち *CreateAssetPublicLinkOnApproval*を使うことができます。
    
    **レーベル**
    
    あなたの行動には任意のラベルを付けます。
    
    **種類**
    
    このアクションのタイプです。この例では **、アクションスクリプト**を選択します。
    
    **文字**
    
    例えば、使いたいスクリプトは *CreateAssetPublicLinkOnApproval*。
    
4.  **「保存**」をクリックします。
    

## トリガーを作成する

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

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

1.  **管理**ページで**トリガー**をクリックします。
    
2.  **トリガーページで「****新しいトリガー**」をクリックします。
    
3.  トリガー作成ページの **「一般」** タブで、以下のフィールドを入力してください:
    
    フィールド
    
    概要
    
    **名称**
    
    例えばトリガーの名前は *CreateAssetPublicLinkOnApproval*。
    
    **概要**
    
    オプションで、アクションのラベルを入力してください。
    
    **目的**
    
    エンティティ **作成** と **エンティティ修正**を選択します。
    
    **実行タイプ**
    
    選択 **中**。
    
4.  **条件**タブで「**定義を追加**」をクリックし、ドロップダウンリストで*Asset (M.Asset)*をクリックします。
    
5.  条件リストで、*最終ライフサイクルステータス*、*現在の値*、*包含*、*すべて*、*Approved*を選択します。
    
    ![Example of the trigger conditions.](https://doc.sitecore.com/api/markdown-image/ch/ja/developers/cloud-dev/images/step_three_-_configure_the_trigger.png)
    
6.  **アクション**タブの「**Post actions**」の下、「**アクションを追加**」をクリックして作成したアクションを選択します。
    
7.  **「保存」をクリックして閉じ**てください。
    
8.  **保存**ダイアログで「**Activate**」をクリックしてトリガーを有効化します。
    
    トリガーが有効化された後、承認された直後にアセットの公開リンクが作成されます。
    
    ![Example of a public link created automatically upon approval.](https://doc.sitecore.com/api/markdown-image/ch/ja/developers/cloud-dev/images/step_four_-_public_links_are_created_automatically_upon_approval.png)