2009-06-12 6 views
5

यदि ऐसा है तो आप कोड प्रदान कर सकते हैं। मैं नए पेज बनाने, पृष्ठ विशेषताओं को संशोधित करने आदि से लगभग हर चीज करने में सक्षम हूं .. लेकिन मैं अनुलग्नक जोड़ने के लिए प्रतीत नहीं कर सकता। मैंने आधिकारिक conflunce Perl XML-RPC site and discussions पढ़ा है लेकिन वे जो कोड कोड दिखाते हैं वे मेरे लिए काम नहीं करते हैं। यहां मेरा हैक अप प्रयास है:क्या कोई भी संलग्नक जोड़ने के लिए Confluence.pm प्राप्त करने में सक्षम है?

# The following command sort of worked: 
# ~/bin/wikitool.pl -action attach_file -url $MYURL 
# IT attached something but the file was empty 
sub attach_file { 
    my $confluence = XMLRPC::Lite->proxy($opts{server}."rpc/xmlrpc"); 
    my $token = $confluence->call("confluence1.login", $opts{login}, $opts{password})->result(); 

    # Fetch page 
    my $page = FetchPage($opts{title}); 
    if (not $page) { 
     dbg("$opts{title} page is missing.","FATAL"); 
    } 

    my $pageId = SOAP::Data->type(string => $$page{id}); 

    my $filename = "$ENV{HOME}/tmp/tmp0.gif"; 
    my $metadata = { 
     fileName => $filename, 
     contentType => "image/gif", 
     comment => "Some random GIF", 
    }; 
    if (not open FILE, "< $filename") { 
     dbg("Could not open file $filename: $!\n","FATAL"); 
    } 
    binmode FILE; 
    my $data; 
    $data .= $_ while (<FILE>); 
    my $call = $confluence->addAttachment($pageId, $metadata, $data); 

    my $fault = $call->fault(); 
    if (defined $fault) { 
     dbg("could not attach $filename" . $call->faultstring(), "FATAL"); 
    } 
    else { 
     print "attached $filename\n"; 
    } 
} 

उत्तर

5

आप वहां से 9 5% रास्ते थे। मेरे लिए गुप्त सॉस:

$data .= $_ while (<FILE>); 
my $escaped_data = new RPC::XML::base64($data); 
my $call = $confluence->addAttachment($pageId, $metadata, $escaped_data); 

मुझे यकीन है कि यह मददगार होने में बहुत देर हो चुकी है, लेकिन हो सकता है कि कोई और दिन में इसमें शामिल हो जाए।

+0

धन्यवाद! मैं अन्य परियोजनाओं पर चले गए हैं लेकिन सामूहिक रूप से कुछ अंतर्दृष्टि जोड़ने के लिए धन्यवाद ... – stephenmm

0

अनुलग्नकों के लिए आरपीसी के बजाय चेरी चेस के एसओएपी के उपयोग को देखने का प्रयास करें।

चर्चा में http://confluence.atlassian.com/display/DISC/Perl+XML-RPC+client अच्छी तरह से देखें।

0

xml-rpc अब संगम में बहिष्कृत है। वर्तमान में बहुत सारे फ़ंक्शन xml-rpc इंटरफ़ेस में काम नहीं करते हैं। साबुन के तहत और अधिक काम करता है।

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

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