This function allows us to retrieve the contents of a file from a remote host via SCP. This is done entirely within R, rather than a command line application and the contents of the file are never written to disc. The function allows the
scp(host, path, keypasswd = NA, user = getUserName(), rsa = TRUE,
key = sprintf(c("~/.ssh/id_%s.pub", "~/.ssh/id_%s"),
if (rsa) "rsa" else "dsa"),
binary = NA, size = 5000, curl = getCurlHandle(), ...)
the name of the remote host or its IP address
the path of the file of interest on the remote host's file systems
a password for accessing the local SSH key. This is the passphrase for the key.
the name of the user on the remote machine
a logical value indicating whether to use the RSA or DSA key
the path giving the location of the SSH key.
a logical value giving
an estimate of the size of the buffer needed to store the contents of the file. This is used to initialize the buffer and potentially avoid resizing it as needed.
a curl handle (getCurlHandle
) that is to be
reused for this request and which potentially contains numerous
options settings or an existing connection to the host.
additional parameters handed to curlPerform
.
Either a raw or character vector giving the contents of the file.
This uses libcurl's facilities for scp.
Use "scp" %in% curlVersion()$protocols
to
see if SCP is supported.
libcurl http://curl.haxx.se
# NOT RUN {
x = scp("eeyore.ucdavis.edu", "/home/duncan/OmegaWeb/index.html",
"My.SCP.Passphrase", binary = FALSE)
x = scp("eeyore.ucdavis.edu", "/home/duncan/OmegaWeb/RCurl/xmlParse.bz2",
"My.SCP.Passphrase")
if(require(Rcompression))
o = bunzip2(x)
# }
Run the code above in your browser using DataLab