Elektra  0.8.23
Plugin: curlget

The curlget plugin is a resolver using libcurl to upload and download files from/to remote hosts. When mounted with a URL as configuration file there will be no changes to the file system. When mounted with a (local) path to a configuration a copy of the remote configuration is kept and used as fallback in kdbGet() if fetching the remote file from the server fails.

Configuration

definitions

URL:

an URL has to be prefixed with the protocol. valid protocols: http://, https://, ftp://, ftps://, scp://, sftp://, smb:// (currently not supported)

Filename:

can bei either an URL or a local configuration file.

if the filename is an URL the plugin operates on temporary files only and keeps no local copy of the configuration. unless specified otherwise the URL is used for both upload and download.

plugin configuration

Example

``` rm /tmp/curltest.ini || $(exit 0) sudo kdb mount -R curlget -c url/get="http://127.0.0.1:8000/curltest.ini",url/put="http://127.0.0.1:8000",user="thomas",password="pass",upload/method="POST",upload/postfield="file" /tmp/curltest.ini system/curl ini kdb ls system/curl #> system/curl/section1 #> system/curl/section1/key1 stat /tmp/curltest.ini

RET:0

kdb set system/curl/section1/key2 val2 sudo kdb umount system/curl stat /tmp/curltest.ini

RET:0

cat /tmp/curltest.ini #> [section1] #> key1 = val1 #> key2 = val2 rm /tmp/curltest.ini || $(exit 0) sudo kdb mount -R curlget -c url/put="http://127.0.0.1:8000",user="thomas",password="pass",upload/method="POST",upload/postfield="file" "http://127.0.0.1:8000/curltest.ini" system/curl ini kdb ls system/curl #> system/curl/section1 #> system/curl/section1/key1 #> system/curl/section1/key2 stat /tmp/curltest.ini

RET:1

mv /tmp/httproot/curltest.ini /tmp/httproot/curltest.ini_moved kdb ls system/curl

RET:5

mv /tmp/httproot/curltest.ini_moved /tmp/httproot/curltest.ini kdb rm system/curl/section1/key2 sudo kdb umount system/curl cat /tmp/httproot/curltest.ini #> [section1] #> key1 = val1 ```

Mount with HTTP GET + POST and keep local copy

``` kdb mount -R curlget -c url/get="http://127.0.0.1:8000/curltest.ini",url/put="http://127.0.0.1:8000",user="thomas",password="pass",upload/method="POST",upload/postfield="file" /tmp/curltest.ini system/curl ini ```

Mount with HTTP GET + POST and keep no local copys

``` kdb mount -R curlget -c url/put="http://127.0.0.1:8000",user="thomas",password="pass",upload/method="POST",upload/postfield="file" "http://127.0.0.1:8000/curltest.ini" system/curl ini ```

Mount with FTP GET + PUT and keep local copy

``` kdb mount -R curlget -c url/get="ftp://127.0.0.1:21/test.ini",url/put="ftp://127.0.0.1:21/test.ini",user="thomas",password="pass",upload/method="FTP" /tmp/curltest.ini system/curl ini ```