<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic upload file in contentlibrary via API : externalpath? in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/upload-file-in-contentlibrary-via-API-externalpath/m-p/117382#M1630</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm trying to upload a file to the default content library using the qrs api, in node.js&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I execute this code, I recieve a 201 code from the server, meaning the file has been created. &lt;/P&gt;&lt;P&gt;The file &lt;SPAN style="font-size: 13.3333px;"&gt;testDoc4.txt is created in the library.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;I can access it via the URL &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;&lt;A href="https://Myserver/content/Default/testDoc4.txt" title="https://Myserver/content/Default/testDoc4.txt"&gt;https://&lt;EM style="font-size: 13.3333px;"&gt;myHostName&lt;/EM&gt;/content/Default/testDoc4.txt&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;But, this file is empty! I suppose I'm not giving the right externalpath.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;My original &lt;SPAN style="font-size: 13.3333px;"&gt;testDoc4.txt file is on the server, on this path : C:\Qlik\server\shared\StaticContent&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please help me to find the well-formated externalpath?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Many thanks &lt;IMG src="https://community.qlik.com/legacyfs/online/emoticons/happy.png" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;PRE&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/PRE&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;var https = require('https');&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;var fs = require('fs');&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;var options = {&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; hostname: 'myHostName',&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; port: 4242,&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; path: '/qrs/contentlibrary/Default/uploadfile?externalpath=testDoc4.txt&amp;amp;overwrite=true&amp;amp;xrfkey=abcdefghijklmnop',&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; method: 'POST',&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; headers: {&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'x-qlik-xrfkey' : 'abcdefghijklmnop',&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'X-Qlik-User' : 'UserDirectory= Internal; UserId= sa_repository ',&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Content-Type' : 'text/html; charset=utf-8'&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; },&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; key: fs.readFileSync("C:\\javaTicket\\pem\\client_key.pem"),&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; cert: fs.readFileSync("C:\\javaTicket\\pem\\client.pem"),&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; ca: fs.readFileSync("C:\\javaTicket\\pem\\root.pem")&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;};&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;https.get(options, function(res) {&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; console.log("Got response: " + res.statusCode);&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; res.on("data", function(chunk) {&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("BODY: " + chunk);&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; });&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; }).on('error', function(e) {&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("Got error: " + e.message);&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;});&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 18 Oct 2018 14:25:44 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2018-10-18T14:25:44Z</dc:date>
    <item>
      <title>upload file in contentlibrary via API : externalpath?</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/upload-file-in-contentlibrary-via-API-externalpath/m-p/117382#M1630</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm trying to upload a file to the default content library using the qrs api, in node.js&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I execute this code, I recieve a 201 code from the server, meaning the file has been created. &lt;/P&gt;&lt;P&gt;The file &lt;SPAN style="font-size: 13.3333px;"&gt;testDoc4.txt is created in the library.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;I can access it via the URL &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;&lt;A href="https://Myserver/content/Default/testDoc4.txt" title="https://Myserver/content/Default/testDoc4.txt"&gt;https://&lt;EM style="font-size: 13.3333px;"&gt;myHostName&lt;/EM&gt;/content/Default/testDoc4.txt&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;But, this file is empty! I suppose I'm not giving the right externalpath.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333px;"&gt;My original &lt;SPAN style="font-size: 13.3333px;"&gt;testDoc4.txt file is on the server, on this path : C:\Qlik\server\shared\StaticContent&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please help me to find the well-formated externalpath?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Many thanks &lt;IMG src="https://community.qlik.com/legacyfs/online/emoticons/happy.png" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;PRE&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/PRE&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;var https = require('https');&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;var fs = require('fs');&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;var options = {&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; hostname: 'myHostName',&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; port: 4242,&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; path: '/qrs/contentlibrary/Default/uploadfile?externalpath=testDoc4.txt&amp;amp;overwrite=true&amp;amp;xrfkey=abcdefghijklmnop',&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; method: 'POST',&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; headers: {&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'x-qlik-xrfkey' : 'abcdefghijklmnop',&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'X-Qlik-User' : 'UserDirectory= Internal; UserId= sa_repository ',&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Content-Type' : 'text/html; charset=utf-8'&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; },&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; key: fs.readFileSync("C:\\javaTicket\\pem\\client_key.pem"),&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; cert: fs.readFileSync("C:\\javaTicket\\pem\\client.pem"),&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; ca: fs.readFileSync("C:\\javaTicket\\pem\\root.pem")&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;};&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;https.get(options, function(res) {&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; console.log("Got response: " + res.statusCode);&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; res.on("data", function(chunk) {&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("BODY: " + chunk);&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; });&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; }).on('error', function(e) {&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log("Got error: " + e.message);&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;});&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Oct 2018 14:25:44 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/upload-file-in-contentlibrary-via-API-externalpath/m-p/117382#M1630</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-10-18T14:25:44Z</dc:date>
    </item>
    <item>
      <title>Re: upload file in contentlibrary via API : externalpath?</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/upload-file-in-contentlibrary-via-API-externalpath/m-p/117383#M1631</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey Florian,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can't claim to be any good at NodeJS, but this is running clean:&lt;/P&gt;&lt;PRE __default_attr="javascript" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_15399153878372530 jive_text_macro" jivemacro_uid="_15399153878372530" modifiedtitle="true"&gt;
&lt;P&gt;var fs = require('fs');&lt;/P&gt;
&lt;P&gt;var request = require('request');&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;fs.readFile('C:\\Scripts\\NodeJS\\foo.xml', function (err, data) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err) return console.error(err);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; options = {&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url: '&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://hostname:4242/qrs/contentlibrary/Default/uploadfile?externalpath=foo.xml&amp;amp;overwrite=true&amp;amp;xrfkey=abcdefghijklmnop" rel="nofollow" target="_blank"&gt;https://hostname:4242/qrs/contentlibrary/Default/uploadfile?externalpath=foo.xml&amp;amp;overwrite=true&amp;amp;xrfkey=abcdefghijklmnop&lt;/A&gt;&lt;SPAN&gt;',&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; method: 'POST',&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headers: {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'x-qlik-xrfkey' : 'abcdefghijklmnop',&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'X-Qlik-User' : 'UserDirectory= Internal; UserId= sa_repository ',&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Content-Type' : 'application/xml'&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key: fs.readFileSync('C:\\ProgramData\\Qlik\\Sense\\Repository\\Exported Certificates\\.Local Certificates\\client_key.pem'),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cert: fs.readFileSync("C:\\ProgramData\\Qlik\\Sense\\Repository\\Exported Certificates\\.Local Certificates\\client.pem"),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ca: fs.readFileSync("C:\\ProgramData\\Qlik\\Sense\\Repository\\Exported Certificates\\.Local Certificates\\root.pem"),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; body: data&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.post(options, function (err, message, data) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err) return console.error(err);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(data)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/P&gt;
&lt;P&gt;&amp;nbsp; });&lt;/P&gt;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The crux of the issue is that you're not including any actual reading / storing of the &lt;EM&gt;file&lt;/EM&gt; that you want to send.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope that helps.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Oct 2018 02:14:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/upload-file-in-contentlibrary-via-API-externalpath/m-p/117383#M1631</guid>
      <dc:creator>Levi_Turner</dc:creator>
      <dc:date>2018-10-19T02:14:47Z</dc:date>
    </item>
  </channel>
</rss>

