承認された資産の公開リンクを自動的に作成します
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
多くのアセットがあり、承認後にすべてのパブリックリンクを作成する必要がある場合、Sitecore Content Hubのアクションやトリガーを使う方が簡単かつ速いです。こうすることで、アセットが承認されるとすぐに公開リンクが自動的に作成されます。
このウォークスルーでは、公開リンクの作成を自動化する方法と、以下の方法について説明します:
スクリプトを作成してください
最初のステップは、Content Hubに元のアセットの公開リンクが存在しない場合に自動生成するよう指示する スクリプト を作成することです。
スクリプトを作成するには:
-
メニューバーで 「管理 」をクリックします。
-
管理ページでスクリプトをクリックします。
-
スクリプトページで Scriptをクリックしてください。
-
スクリプトダイアログで、以下のフィールドを埋めてください:
フィールド
概要
名称
例えば、あなたのスクリプトの名前は CreateAssetPublicLinkOnApproval。
種類
例えば、スクリプトタイプは Action。
概要
スクリプトの任意の説明です。
-
「保存」をクリックします。
-
スクリプトページで作成したCreateAssetPublicLinkOnApprovalスクリプトをクリックします。
-
スクリプト詳細ページ右上で 「編集」をクリックします。
-
スクリプトエディターで以下のコードを入力します:
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
("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); }
-
「 変更を保存」をクリックします。
-
「 ビルド」をクリックします。
-
「公開」をクリックします。

アクションを作成する
次のステップは、CreateAssetPublicLinkOnApprovalスクリプトに基づいてアクションを作成することです。
アクションを作成するには:
-
管理ページで「アクション」をクリックします。
-
**アクションページで「**新しいアクション」をクリックします。
-
新しいアクションダイアログで、以下のフィールドを埋めてください:
フィールド
概要
名称
あなたのアクションの名前です。スクリプト名、すなわち CreateAssetPublicLinkOnApprovalを使うことができます。
レーベル
あなたの行動には任意のラベルを付けます。
種類
このアクションのタイプです。この例では 、アクションスクリプトを選択します。
文字
例えば、使いたいスクリプトは CreateAssetPublicLinkOnApproval。
-
「保存」をクリックします。
トリガーを作成する
最後のステップは、アセットが承認されるたびに公開リンクを作成するトリガーを作成することです。
トリガーを作成するには:
-
管理ページでトリガーをクリックします。
-
**トリガーページで「**新しいトリガー」をクリックします。
-
トリガー作成ページの 「一般」 タブで、以下のフィールドを入力してください:
フィールド
概要
名称
例えばトリガーの名前は CreateAssetPublicLinkOnApproval。
概要
オプションで、アクションのラベルを入力してください。
目的
エンティティ 作成 と エンティティ修正を選択します。
実行タイプ
選択 中。
-
条件タブで「定義を追加」をクリックし、ドロップダウンリストで*Asset (M.Asset)*をクリックします。
-
条件リストで、最終ライフサイクルステータス、現在の値、包含、すべて、Approvedを選択します。

-
アクションタブの「Post actions」の下、「アクションを追加」をクリックして作成したアクションを選択します。
-
「保存」をクリックして閉じてください。
-
保存ダイアログで「Activate」をクリックしてトリガーを有効化します。
トリガーが有効化された後、承認された直後にアセットの公開リンクが作成されます。
