2012-09-05 9 views
5

जब हम कुछ पेज/गतिशील घटक को ट्रिडियन से प्रकाशित करते हैं तो प्रकाशित करने पर वर्तमान निष्पादन/प्रतिपादन पैकेज में कुछ बाहरी मल्टीमीडिया फ़ाइल/सामग्री (उदा: जेपीजी छवि) जोड़ना संभव है समय। तो क्या अंतिम परिवहन पैकेज में मूल प्रकाशित सामग्री के साथ इस बाइनरी फ़ाइल मौजूद है? क्या यह उपलब्धि ट्रिपियन रेंडरर/रिज़ॉल्वर के अनुकूलन का उपयोग कर योग्य है? यदि हां कृपया कुछ इनपुट प्रदान करें।ट्रिडियन प्रकाशन समय पर पैकेज में बाहरी मल्टीमीडिया फ़ाइल को पुश करें

* नोट: * बाइनरी सामग्री में धक्का दे दिया किए जाने की आवश्यकता है कि कम से प्रकाशित समय tridion में मल्टीमीडिया घटक के रूप में मौजूद नहीं है पैकेज, यह tridion CMS.Instead बाहर अन्य फ़ाइल स्थान पर स्थित है हम कुछ ठूंठ मल्टीमीडिया है घटक को प्रकाशित घटक/पृष्ठ के अंदर इस्तेमाल किया जा रहा है जिसमें कुछ डमी छवि है। हम मूल छवि के साथ स्टब छवि को प्रतिलिपि (प्रतिपादन/हल करने) समय पर प्रतिस्थापित करने की योजना बना रहे हैं।

चूंकि हमारे पास डीएएम उपकरण में संग्रहीत बाइनरी सामग्री का भारी हिस्सा है, इसलिए हम नहीं चाहते हैं कि डेटा को ट्रिडियन में मल्टीमीडिया घटक के रूप में पुनर्निर्मित किया जाए, उदाहरण के लिए हम उस डेटा का उपयोग डीएएम उपकरण से पूछकर और इसे कुछ के साथ ट्राइडियन पैकेज में संलग्न करना चाहते हैं संदर्भ के लिए कुछ मानचित्रण डीबी में मूल सामग्री के लिए स्टब मल्टीमीडिया कॉम्प टीसीएमआईडी के बीच एक से एक मैपिंग को बनाए रखने के लिए लॉजिकल रेफरेंसप्लानिंग)।

कृपया हमें बताएं कि प्रकाशित समय पर पैकेज में बाहरी बाइनरी सामग्री को जोड़ने के लिए कोई समाधान है या नहीं।

उत्तर

10

सबसे अच्छा और सबसे आसान तरीका - इसके लिए ट्रिडियन आउट-द-बॉक्स द्वारा प्रदान की गई तंत्र का उपयोग करना है। एक नया मल्टीमीडिया घटक बनाएं, संसाधन प्रकार ड्रॉप-डाउन में "बाहरी" का चयन करें, और ऑब्जेक्ट पर यूआरएल टाइप करें। जब तक आप इसे किसी यूआरएल से संबोधित कर सकें, यह ठीक वैसे ही काम करेगा जैसा आप चाहते हैं (आइटम पैकेज में जोड़ा जाएगा और डिलीवरी सर्वर पर भेजा जाएगा)।

यदि यह आपके लिए पर्याप्त नहीं है, तो हाँ, आप इसे पैकेज में स्वयं जोड़ सकते हैं। मैं इस इस तरह कुछ हद तक कोड के साथ पूर्व में की गई:

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

यह वास्तविक फ़ाइल मैं चाहता था के साथ अपने मूल घटक की सामग्री बदल दिया। यह आपके लिए काम करेगा यदि मूल घटक भी एक मल्टीमीडिया घटक है। यदि ऐसा नहीं है, तो बस अपने नाम के साथ एक नया आइटम बनाएं, आदि। यदि संभव हो, तो इसके बजाय आउट-ऑफ-द-बॉक्स प्रक्रिया का उपयोग करें।

पीएस: FileInfo Class

9

चूंकि नूनो ने सुझाव दिया कि 'बाहरी' संसाधन प्रकार के साथ मल्टीमीडिया घटक का उपयोग करना सबसे अच्छा तरीका है। आपको इन्हें मैन्युअल रूप से बनाने की आवश्यकता नहीं हो सकती है, आप कोर सेवाओं या एपीआई प्रोग्राम का उपयोग कर स्वचालित कर सकते हैं।

एक और तरीका मैंने रन टाइम पर ज़िप फ़ाइल बनाने के लिए पहले उपयोग किया था और निम्न कोड के साथ पैकेज में जोड़ दिया था। उम्मीद है कि यह मदद कर सकता है।

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); 

       } 
संबंधित मुद्दे