2012-09-05 11 views
5

tridionからいくつかのページ/動的コンポーネントを公開すると、外部マルチメディアファイル/コンテンツ(例:jpg画像)をパブリッシュ時に現在の実行/レンダリングパッケージに追加できます最終的な輸送パッケージにはこのバイナリファイルがオリジナルの公開コンテンツとともに存在していますか? これはtridion renderer/resolverのカスタマイズを使用することが可能ですか?はいの場合、いくつかの入力を提供してください。tridionの公開時に外部マルチメディアファイルをパッケージに入れよう

* 注:は*でパッケージ化することでプッシュする必要がバイナリコンテンツは時間を公開するにはTridionの中にマルチメディアコンポーネントとして存在していない、それがTridionのCMS.Instead外の他のファイルの場所に位置しています我々はいくつかのスタブマルチメディアを持っています一部のダミーイメージを持つ公開コンポーネント/ページ内で使用されているコンポーネント。公開(レンダリング/解決)時間にスタブイメージを元のイメージに置き換える予定です。

DAMツールに保存されているバイナリコンテンツは膨大な量を占めていますので、そのデータをマルチメディアコンポーネントとして再作成したい場合は、DAMツールを使用してそのデータを使用し、参照のためにいくつかのマッピングDB内のスタブ・マルチメディア・コンパクションと元のコンテンツとの間の1対1マッピングを維持するための論理参照計画)。

パブリッシュ時にパッケージに外部バイナリコンテンツを添付する方法がある場合は、お知らせください。

答えて

10

Tridionで提供されているメカニズムをそのまま使用することが最も簡単で簡単な方法です。新しいマルチメディアコンポーネントを作成し、リソースタイプドロップダウンで「外部」を選択し、オブジェクトのURLを入力します。あなたがURLでそれをアドレス指定できる限り、それはあなたが望むように正確に動作します(アイテムはパッケージに追加され、配送サーバに送信されます)。

これでは十分ではない場合は、はい、パッケージに自分自身を追加できます。私は過去にこのようなコードでこれをやっています:

FileInfo file = // Weird logic to get a FileInfo object from external system 
Item item = package.GetItem("My original Item"); 
item.SetAsStream(file.OpenRead()); 

これは、私の元のコンポーネントの内容を、私が望む実際のファイルに置き換えました。元のコンポーネントがマルチメディアコンポーネントでもある場合は、これが機能します。そうでない場合は、自分の名前などで新しいアイテムを作成してください。可能であれば、すぐに使うことができます。

PS:FileInfo Class

9

Nunoは、「外部」リソースタイプのマルチメディアコンポーネントを使用することをお勧めします。これらを手動で作成する必要はなく、コアサービスまたはAPIプログラムを使用して自動化することもできます。

実行時にzipファイルを作成し、次のコードでパッケージに追加する別の方法です。それが助けてくれることを願って。

using (MemoryStream ms = new MemoryStream()) 
       { 
        zip.Save(ms); 
        downloadAllInOneURL = String.Format("ZipAsset{0}.zip", uniqueZipID); 
        downloadAllInOneURL = m_Engine.PublishingContext.RenderedItem.AddBinary(ms, downloadAllInOneURL, "", "application/zip").Url; 
        downloadAllInOneSize = getSize(ms.Length); 

       } 
関連する問題