SFTPClient API Documentation
Base.Filesystem.cd
— Methodcd(sftp::SFTP, dir::AbstractString)
Change the directory for the SFTP client.
Base.Filesystem.filemode
— MethodBase.isdir(st::SFTPStatStruct)
Get the filemode of the directory
Base.Filesystem.isdir
— MethodBase.isdir(st::SFTPStatStruct)
Test if st is a directory
Base.Filesystem.isfile
— MethodBase.isfile(st::SFTPStatStruct)
Test if st is a file
Base.Filesystem.islink
— Methodislink(path) -> Bool
Return true
if path
is a symbolic link, false
otherwise.
Base.Filesystem.mkdir
— Methodmkdir(sftp::SFTP, dir::AbstractString)
Create a directory
Base.Filesystem.mv
— Methodmv( sftp::SFTP, oldname::AbstractString, newname::AbstractString; )
Move, i.e., rename the file.
Base.Filesystem.readdir
— Functionreaddir(sftp::SFTP, join::Bool = false, sort::Bool = true)
Reads the current directory. Returns a vector of Strings just like the regular readdir function.
Base.Filesystem.rm
— Methodrm(sftp::SFTP, file_name::AbstractString)
Remove (delete) the file
SFTPClient.download
— FunctionSFTPClient.download( sftp::SFTP, file_name::AbstractString, output = tempname();downloadDir::Union{String, Nothing}=nothing)
Download a file. You can download it and use it directly, or save it to a file.
Specify downloadDir if you want to save downloaded files. You can also use broadcasting.
Example:
sftp = SFTP("sftp://test.rebex.net/pub/example/", "demo", "password")
files=readdir(sftp)
downloadDir="/tmp"
SFTPClient.download.(sftp, files, downloadDir=downloadDir)
You can also use it like this:
df=DataFrame(CSV.File(SFTPClient.download(sftp, "/mydir/test.csv")))
SFTPClient.rmdir
— Methodrmdir(sftp::SFTP, dir_name::AbstractString)
Remove (delete) the directory
SFTPClient.sftpstat
— Methodsftpstat(sftp::SFTP, path::AbstractString)
Like Julia stat, but returns a Vector of SFTPStatStructs. Note that you can only run this on directories. Can be used for checking if a file was modified, and much more.
SFTPClient.upload
— Methodupload(sftp::SFTP, file_name::AbstractString)
Upload (put) a file to the server. Broadcasting can be used too.
files=readdir() upload.(sftp,files)
SFTPClient.walkdir
— MethodSFTPClient.walkdir(sftp::SFTP, root; topdown=true, follow_symlinks=false, onerror=throw)
Return an iterator that walks the directory tree of a directory.
The iterator returns a tuple containing `(rootpath, dirs, files)`.
# Examples
```julia
for (root, dirs, files) in walkdir(sftp, ".")
println("Directories in $root")
for dir in dirs
println(joinpath(root, dir)) # path to directories
end
println("Files in $root")
for file in files
println(joinpath(root, file)) # path to files
end
end
```
SFTPClient.SFTP
— MethodSFTP(url::AbstractString, username::AbstractString, publickeyfile::AbstractString, privatekeyfile::AbstractString;disableverifypeer=false, disableverifyhost=false, verbose=false)
Creates a new SFTP client using certificate authentication, and keys in the files specified
sftp = SFTP("sftp://mysitewhereIhaveACertificate.com", "myuser", "test.pub", "test.pem")
SFTPClient.SFTP
— MethodSFTP(url::AbstractString, username::AbstractString, password::AbstractString;createknownhostsentry=true, disableverifypeer=false, disableverify_host=false)
Creates a new SFTP Client: url: The url to connect to, e.g., sftp://mysite.com username: The username to use password: The users password createknownhosts_entry: Automatically create an entry in known hosts
Example: sftp = SFTP("sftp://test.rebex.net", "demo", "password")
SFTPClient.SFTP
— MethodSFTP(url::AbstractString, username::AbstractString;disableverifypeer=false, disableverifyhost=false)
Creates a new SFTP client using certificate authentication.
sftp = SFTP("sftp://mysitewhereIhaveACertificate.com", "myuser")
Note! You must provide the username for this to work.
Before using this method, you must set up your certificates in ~/.ssh/idrsa and ~/.ssh/idrsa.pub
Of course, the host need to be in the known_hosts file as well.
Test using your local client first: ssh myuser@mysitewhereIhaveACertificate.com
See other method if you want to use files not in ~/ssh/