2009-01-30 13 views
5

मेरे पास एक पर्ल ऐप है जो कुछ प्रभावशाली संचालन चलाता है, अंत में मैं इसे शेयरपॉइंट वेबसाइट पर परिणाम अपलोड करना चाहता हूं।मैं पर्ल के साथ शेयरपॉइंट पर एक दस्तावेज़ कैसे अपलोड कर सकता हूं?

  • सबसे सरल पर्ल स्क्रिप्ट क्या है जो SharePoint पर दस्तावेज़ जोड़ने का कार्य पूरा कर सकती है?

स्क्रिप्ट सोलारिस पर चलाने के लिए और का उपयोग संभव (निश्चित रूप से शुद्ध क्लासिक पर्ल) के रूप में संभव बाहरी पुस्तकालयों कुछ भी हो रही अतिरिक्त इन यूनिक्स बक्से पर स्थापित के रूप में के रूप में कुछ एक दर्द है करने की आवश्यकता होगी और होता दूरस्थ टीम द्वारा किया जाएगा ।

यदि यह दस्तावेज़ अपलोड कर सकता है तो आसानी से wget के साथ किया जा सकता है, जो भी ब्याज की होगी। वैसे भी, मैं 1 या दो लाइनर की तलाश में हूं जो समझने में आसान है।

अद्यतन टिप्पणी के आधार पर:

  • पर्ल मशीनीकरण एक अच्छा विचार की तरह लग रहा है, लेकिन किसी कारण मैं प्रमाणित करने के लिए सक्षम नहीं हूँ, के लिए त्रुटि geting http://sharepoint Unauthorized ....

मैं इस किया था:

my $m = WWW::Mechanize->new(); 
$m->credentials($user => $pass); 
$m->get($url); 

लेकिन मशीनीकरण कुछ कारणों से शेयरपॉइंट के खिलाफ प्रमाणित नहीं होगा।

  • क्या किसी के पास यूनिक्स से पिक्सल के माध्यम से शेयरपॉइंट वेबडैव का उपयोग करने के तरीके पर कोई लिंक या नमूना है?

मैं स्थापित किया है और "डेव" WebDAV ब्राउज़र के माध्यम से my typical sharepoint site खोलने की कोशिश की, लेकिन मैं ** Unauthorized. ** त्रुटि मिलती है।

  • यूनिक्स पर पर्ल के साथ वेबडैव दृष्टिकोण के साथ इसे कैसे हल करें?
+0

ध्वनि आम मुद्दा तरह प्रमाणीकरण है। आप साइट पर प्रमाण-पत्र कैसे प्रदान कर रहे हैं ?? क्या आपने प्रमाणीकरण बंद होने वाली साइट पर एक अभ्यास चलाने की कोशिश की है? – Nat

उत्तर

2

बस perlmonks मंच से खिड़कियों पर एक आसान रास्ता मिल गया:

http://www.perlmonks.org/?node_id=527182 
under Windows, you can access a sharepoint site via a UNC name. The URL: 
sharepoint.domain.dom/sites/Roboticus/Test 
is accessible via: 
\\sharepoint.domain.com\sites\Roboticus\Test 

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

+0

हाँ, यह वेबडाव इंटरफ़ेस है। उम्मीद है कि एक साधारण फाइल कॉपी सिर्फ "काम" करेगी। – Nat

1

क्या आप Webdav इंटरफ़ेस का उपयोग कर सकते हैं? प्रत्येक SharePoint सूची में इसके साथ जुड़े एक वेबडैव फ़ोल्डर है।

+0

क्या किसी के पास यूनिक्स से पर्ल के माध्यम से शेयरपॉइंट वेबडैव का उपयोग करने के तरीके पर कोई लिंक या नमूना है? मैंने स्थापित किया और कोशिश की http://www.webdav.org/perldav ने "सामान्य" वेबडाव ब्राउज़र के माध्यम से अपनी सामान्य शेयरपॉइंट साइट खोलने की कोशिश की, लेकिन मुझे ** अनधिकृत मिला। ** त्रुटि। किसी के साथ भाग्यशाली है? वेब :: मैकेनाइजेशन के लिए –

6

यह WWW::Mechanize के लिए नौकरी की तरह लगता है। फ़ॉर्म के साथ निपटने के लिए इसका उत्कृष्ट समर्थन है।

+0

+1, यह एक हवा को स्क्रीन-स्क्रैपिंग बनाता है। –

+0

मेच एक अच्छा विचार की तरह लग रहा था, लेकिन किसी कारण से मैं प्रमाणित करने में सक्षम नहीं हूं, http: // sharepoint अनधिकृत प्राप्त करने में त्रुटि .... मेरे पास यह था: मेरा $ m = WWW :: मैकेनाइजेशन-> नया() ; $ m-> साख ($ उपयोगकर्ता => $ पास); $ m-> get ($ यूआरएल); कोई भी विचार क्यों इस SharePoint साथ काम नहीं करेंगे? –

1

WWW में NTLM प्रमाणीकरण काम बनाने के लिए :: मशीनीकरण आपको प्रमाणित और बातचीत प्रदर्शन करने के लिए इस प्रारूप

use URI; 
my $u = URI->new($url); 
my $host = $u->host; 
my $port = $u->port; 
my $hostport = "$host:$port"; 

$agent->$self->credentials($hostport, $realm, $user, $password); 
1

उपयोग करने के लिए आप SharePoint (या किसी भी वेबसाइट) से कनेक्ट कर्ल, जो सक्षम है का उपयोग कर सकते हैं की जरूरत है

curl --ntlm -u domain/userid:passwd -T <file> "http://sharepoint URL" 
  • --ntlm: करबरोस/NTLM साथ 10 (HTTP) एनटीएलएम प्रमाणीकरण सक्षम करता है। एनटीएलएम प्रमाणीकरण विधि माइक्रोसॉफ्ट द्वारा डिजाइन की गई थी और आईआईएस वेब सर्वर द्वारा इसका उपयोग किया जाता है। यह एक स्वामित्व प्रोटोकॉल है, चतुर लोगों द्वारा रिवर्स-इंजीनियर और उनके प्रयासों के आधार पर कर्ल में लागू किया गया है। इस तरह के व्यवहार का समर्थन नहीं किया जाना चाहिए, आपको उन सभी को प्रोत्साहित करना चाहिए जो NTLM का उपयोग सार्वजनिक और दस्तावेज प्रमाणीकरण विधि जैसे कि डाइजेस्ट पर स्विच करने के लिए करते हैं।

    यदि आप अपने प्रॉक्सी प्रमाणीकरण के लिए एनटीएलएम सक्षम करना चाहते हैं, तो --proxy-ntlm का उपयोग करें।

    इस विकल्प को SSL समर्थन के साथ बनाई गई लाइब्रेरी की आवश्यकता है। यह देखने के लिए कि आपका कर्ल एनटीएलएम का समर्थन करता है या नहीं - उपयोग करें।

    यदि यह विकल्प कई बार उपयोग किया जाता है, तो केवल पहले का उपयोग किया जाता है।

  • -u,

    --उपयोगकर्ता सर्वर प्रमाणीकरण के लिए उपयोग करने के लिए उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करें। ओवरराइड -एन, --नेट्रैक और --नेटआरसी-वैकल्पिक।

    यदि आप बस उपयोगकर्ता नाम निर्दिष्ट करते हैं, तो कर्ल पासवर्ड के लिए संकेत देगा।

    उपयोगकर्ता नाम और पासवर्ड पहले कोलन पर विभाजित हैं, जो इस विकल्प के साथ उपयोगकर्ता नाम में एक कोलन का उपयोग करना असंभव बनाता है। पासवर्ड अभी भी कर सकता है।

    विंडोज आधारित सर्वर के साथ केर्बेरोस वी 5 का उपयोग करते समय आपको उपयोगकर्ता नाम में विंडोज डोमेन नाम शामिल करना चाहिए ताकि सर्वर को सफलतापूर्वक केर्बेरोज टिकट प्राप्त हो सके। यदि आप नहीं करते हैं तो प्रारंभिक प्रमाणीकरण हैंडशेक विफल हो सकता है।

    एनटीएलएम का उपयोग करते समय, उपयोगकर्ता नाम को डोमेन के बिना उपयोगकर्ता नाम के रूप में निर्दिष्ट किया जा सकता है, उदाहरण के लिए आपके सेटअप में एक एकल डोमेन और वन है।

    डोमेन नाम निर्दिष्ट करने के लिए डाउन-लेवल लॉगऑन नाम या यूपीएन (उपयोगकर्ता प्रिंसिपल नेम) प्रारूपों का उपयोग करें। उदाहरण के लिए, क्रमशः EXAMPLE \ उपयोगकर्ता और [email protected]

    यदि आप विंडोज एसएसपीआई-सक्षम कर्ल बाइनरी का उपयोग करते हैं और केर्बेरोस वी 5, नेगोशिएट, एनटीएलएम या डाइजेस्ट प्रमाणीकरण करते हैं तो आप इस विकल्प के साथ एक कॉलन निर्दिष्ट करके अपने पर्यावरण से उपयोगकर्ता नाम और पासवर्ड चुनने के लिए कर्ल बता सकते हैं: " -u: "।

    यदि यह विकल्प कई बार उपयोग किया जाता है, तो अंतिम का उपयोग किया जाएगा।

  • -टी, --upload-फ़ाइल

    इस दूरदराज के यूआरएल के लिए निर्दिष्ट स्थानीय फाइल हस्तांतरित करता है।यदि निर्दिष्ट यूआरएल में कोई फ़ाइल भाग नहीं है, तो कर्ल स्थानीय फ़ाइल नाम जोड़ देगा। ध्यान दें कि आपको वास्तव में कर्ल को साबित करने के लिए पिछली निर्देशिका पर पीछे/पीछे उपयोग करना होगा कि कोई फ़ाइल नाम या कर्ल नहीं होगा, यह सोचने के लिए कि आपकी अंतिम निर्देशिका नाम दूरस्थ फ़ाइल नाम है। अपलोड ऑपरेशन विफल होने का सबसे अधिक संभावना है। यदि यह HTTP (एस) सर्वर पर प्रयोग किया जाता है, तो PUT कमांड का उपयोग किया जाएगा। किसी दिए गए फ़ाइल के बजाय stdin उपयोग करने के लिए (एक पानी का छींटा) - ""

    फ़ाइल नाम का उपयोग करें। वैकल्पिक रूप से, फ़ाइल का नाम "।" (एक एकल अवधि) को गैर-अवरुद्ध मोड में stdin का उपयोग करने के लिए "-" निर्दिष्ट किया जा सकता है ताकि stdin अपलोड होने पर सर्वर आउटपुट पढ़ने की अनुमति मिल सके।

    आप कमांड लाइन पर प्रत्येक यूआरएल के लिए एक -टी निर्दिष्ट कर सकते हैं। प्रत्येक-टी + यूआरएल जोड़ी निर्दिष्ट करती है कि अपलोड करने के लिए और कहां जाना है। कर्ल -टी तर्क के "globbing" का भी समर्थन करता है, जिसका अर्थ है कि आप यूआरएल में समर्थित यूआरएल ग्लोबिंग शैली का उपयोग करके एक ही यूआरएल में एकाधिक फाइलें अपलोड कर सकते हैं, जैसे:

    कर्ल-टी "{file1, file2 } "http://www.uploadtothissite.com

    या यहाँ तक कि

    कर्ल -टी" img [1-1000] .png "ftp://ftp.picturemania.com/upload/

+0

प्रश्न "पर्ल" के लिए पूछता है और पहले से ही कई जवाब हैं। साथ ही, "सरल" के साथ एक उत्तर तैयार करना सुपर प्रेरणा के रूप में नहीं आता है। –

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