This object supports the client side of the sftp protocol, version 3, and implements an interface similar to the usual sftp command line client.
1 SftpClient
SFTP Object can be created invoking a new Ax.net.SFTP Constructor. Parameters expected are: hostname, port, username and password.
Copy
<script> //var sftpconn = new Ax.net.SftpClient("192.168.10.11", 22, 'informix','******'); var sftpcon = new Ax.net.SftpClient('dbsrv4', 22, 'informix','******'); </script>
Return | Method | Description |
---|---|---|
void | disconnect() | Disconnects from server |
boolean | exists(String name) | Returns true if file name exists |
void | cd(String name) | Changes working directory |
void | rm(String name) | Deletes file |
void | rmdir(String name) | Deletes empty directory |
ArrayList<String> | list(String pattern) | Returns an array of files or folder names. You can get only a subset of files applying a pattern. You can use * as a replacement for any number of characters. |
ArrayList<LsEntry> | listFiles(String pattern) | Return an array of LsEntry objects |
void | mkdir(String name) | Creates a new directory with name passed as parameter |
void | put(String name, Object data) | Sends the content of data and creates a new file remotely with this content. data can be a Blob, file, byte[], etc. |
String | pwd() | Returns the current working directory |
void | rename(String src, String dst) | Renames a file in server. |
byte[] | getBytes(String name) | gets content of remote file in server with name passed as parameter. |
Blob | getBlob(String name) | gets content of remote file and returns a Blob. Internal blob name are set from remote file name passed as parameter. |
2 SFTP Usage
.
2.1 Basic example
.
Copy
<script> var sftpcon = new Ax.net.SftpClient('dbsrv4', 22, 'informix','*****'); sftpcon.cd("/tmp"); if (!sftpcon.exists("TestFolder")) { sftpcon.mkdir("TestFolder"); } sftpcon.cd("TestFolder"); console.log(sftpcon.pwd()); sftpcon.put("RedSprites_Broady_960.jpg", new Ax.net.URL("https://apod.nasa.gov/apod/image/1902/RedSprites_Broady_960.jpg").getBytes()); return sftpcon.getBlob("RedSprites_Broady_960.jpg"); </script>
2.2 Advanced example
This advanced example, shows how an almost real example, creating folders, sending files, procesing directory or file lists and moving processed files to other directory.
Copy
<script> var sftpcon = new Ax.net.SftpClient('dbsrv4', 22, 'informix','*****'); if (!sftpcon.exists("/tmp/TestFolder")) { console.log("TestFolder doesn't exists. Creating..."); sftpcon.mkdir("/tmp/TestFolder"); sftpcon.mkdir("/tmp/TestFolder/PROCESSED/"); } sftpcon.cd("/tmp/TestFolder"); console.log(sftpcon.pwd()); sftpcon.put("RedSprites_Broady_960.jpg", new Ax.net.URL("https://apod.nasa.gov/apod/image/1902/RedSprites_Broady_960.jpg").getBytes()); sftpcon.put("M82Magnet_SOFIA_960.jpg", new Ax.net.URL("https://apod.nasa.gov/apod/image/1903/M82Magnet_SOFIA_960.jpg").getBytes()); sftpcon.put("moonrisemk_connelley_960.jpg", new Ax.net.URL("https://apod.nasa.gov/apod/image/1903/moonrisemk_connelley_960.jpg").getBytes()); sftpcon.put("M78_RGBwright1024.jpg", new Ax.net.URL("https://apod.nasa.gov/apod/image/1903/M78_RGBwright1024.jpg").getBytes()); console.log(sftpcon.list("/tmp/TestFolder/M*.jpg")); console.log(sftpcon.list("/tmp/TestFolder/")); console.log(sftpcon.list("*.jpg")); console.log(sftpcon.list("FILENOTFOUND.TXT")); for each (var f of sftpcon.listFiles("/tmp/TestFolder/M*.jpg")) { console.log(f.getFilename() + " = " + f.getLongname() + " Attr:" + f.getAttrs()); sftpcon.rename(f.getFilename(), "PROCESSED/" + f.getFilename()); } return sftpcon.getBlob("/tmp/TestFolder/PROCESSED/M78_RGBwright1024.jpg"); </script>
/tmp/TestFolder
[[M78_RGBwright1024.jpg, M82Magnet_SOFIA_960.jpg]]
[[moonrisemk_connelley_960.jpg, PROCESSED, ., M78_RGBwright1024.jpg, .., RedSprites_Broady_960.jpg, M82Magnet_SOFIA_960.jpg]]
[[moonrisemk_connelley_960.jpg, M78_RGBwright1024.jpg, RedSprites_Broady_960.jpg, M82Magnet_SOFIA_960.jpg]]
[[]]
M78_RGBwright1024.jpg = -rw-rw-r-- 1 informix informix 319827 Mar 12 17:38 M78_RGBwright1024.jpgAttr:-rw-rw-r-- 1000 1000 319827 Tue Mar 12 17:38:15 CET 2019
M82Magnet_SOFIA_960.jpg = -rw-rw-r-- 1 informix informix 34520 Mar 12 17:38 M82Magnet_SOFIA_960.jpgAttr:-rw-rw-r-- 1000 1000 34520 Tue Mar 12 17:38:11 CET 2019