|
| constructor (Qore::SSH2::SFTPClient sftp, hash< auto > nconf) |
| creates the SftpPoller object from the SFTPClient argument and configuration hash argument passed
|
|
| constructor (hash< auto > nconf) |
| creates the SftpPoller object from the configuration hash argument passed
|
|
| destructor () |
| stops the polling operation if in progress and destroys the object
|
|
int | getPollCount () |
| returns the current poll count
|
|
int | getStoreFile (string remote_path, string local_path, *timeout n_timeout) |
| retrieves a remote file and stores it to a local path
|
|
string | getTextFile (string path, *timeout n_timeout, *string n_encoding) |
| retrieves a text file and returns the file's contents
|
|
binary | getFile (string path, *timeout n_timeout) |
| retrieves a binary file and returns the file's contents
|
|
| rename (string old, string nnew, *timeout n_timeout) |
| renames a file on the server
|
|
| removeFile (string fn, *timeout n_timeout) |
| deletes a file on the server
|
|
*hash< Qore::SSH2::Ssh2StatInfo > | stat (string path, *timeout n_timeout) |
| returns information about a remote file (see Qore::SSH2::SFTPClient::stat() for a description of the return format)
|
|
| checkRemotePath (string path, bool write=False, *timeout n_timeout) |
| check if a remote path is writable
|
|
list< hash< SftpPollerFileEventInfo > > | getFiles (int sort=SftpPoller::SortNone, int order=SftpPoller::OrderAsc) |
| returns a list of regular file hashes matching any file name mask set for the object
|
|
int | start () |
| starts polling in the background; returns the thread ID of the polling thread
|
|
| stopNoWait () |
| stops the polling operation, returns immediately
|
|
| stop () |
| stops the polling operation, returns when the polling operation has been stopped
|
|
| waitStop () |
| waits indefinitely for the polling operation to stop; if polling was not in progress then this method returns immediately
|
|
| startInline () |
| starts the polling operation inline (not in a background thread)
|
|
bool | runOnce () |
| runs a single poll (useful for checking for errors inline before starting a background thread)
|
|
hash< SftpPollerFileEventInfo > | getRemoteFileData (hash< SftpPollerFileEventInfo > event) |
| Retrieves remote file data and adds it to the event data.
|
|
*bool | fileEvent (list< hash< SftpPollerFileEventInfo > > l) |
| called for each poll with a list of all files matched before transfer; if this method returns False or nothing, then the singleFileEvent method is not called
|
|
abstract | singleFileEvent (hash< SftpPollerFileEventInfo > fih) |
| called for each matching file individually whenever matching files are polled with the list of matching file names; if any error occurs here, the error is logged and the polling operation is retried
|
|
abstract | postSingleFileEvent (hash< SftpPollerFileEventInfo > fih) |
| called after singleFileEvent() for each matching file individually whenever matching files are polled with the list of matching file names; if any error occurs here, the polling operation stops
|
|
|
Mutex | m () |
| start mutex
|
|
Counter | sc () |
| stop counter
|
|
| logInfo (string fmt) |
| calls the "log_info" closure or call reference with important information
|
|
| logDetail (string fmt) |
| calls the "log_detail" closure or call reference with detail information
|
|
| logDebug (string fmt) |
| calls the "log_debug" closure or call reference with verbose debugging information
|
|
| setMask () |
| converts a glob mask into a regex
|
|
hash< SftpPollerFileEventInfo > | retrieveTempFile (hash< SftpPollerFileEventInfo > event) |
| Retrieves the remote file to local_dir using a temporary file.
|
|
hash< SftpPollerFileEventInfo > | retrieveFile (hash< SftpPollerFileEventInfo > event) |
| Retrieves the remote file to local_dir directly.
|
|
| sftpSleep (softint secs) |
| sleeps for the specificed number of seconds
|
|
| setup (SFTPClient sftp) |
| Sets up a new SFTP connection.
|
|
| run () |
| starts the polling operation
|
|
|
string | host |
| host or address name
|
|
int | port |
| port
|
|
string | user |
| user
|
|
string | url |
| url
|
|
*string | pass |
| password; one of "pass" or "keyfile" *must* be set
|
|
*string | keyfile |
| path to the ssh private key in PEM format; one of "pass" or "keyfile" *must* be set
|
|
softlist< string > | path = "." |
| path(s) to poll
|
|
string | rootSftpPath |
| path after connect to SFTP server
|
|
*string | mask |
| file glob name mask (ignored if "regex_mask" also set)
|
|
int | poll_interval |
| poll interval in seconds
|
|
string | local_dir |
| Local directory to transfer file.
|
|
string | tempfile_template |
| The temporary filename template when local_dir is set.
|
|
bool | atomic_transfer |
| Atomic transfer flag for use with local_dir .
|
|
bool | delete_remote_file |
| Delete file on remote SFTP server after processing?
|
|
*string | move_remote_file |
| Remote target directory for moving the file on the remote SFTP server after processing.
|
|
bool | runflag = False |
| run flag
|
|
bool | get_files |
| internal "get files" flag
|
|
bool | fatal = False |
| internal fatal error flag
|
|
int | pollcnt = 0 |
| internal poll counter
|
|
int | tid |
| polling tid
|
|
timeout | timeout |
| timeout in ms
|
|
Qore::SSH2::SFTPClient | sftp |
| SFTPClient object.
|
|
int | reopts = 0 |
| file matching regex options
|
|
*softint | minage |
| minimum file age
|
|
*string | encoding |
| file encoding for text files
|
|
*code | log_info |
| optional info log closure
|
|
*code | log_detail |
| optional detail log closure
|
|
*code | log_debug |
| optional debug log closure
|
|
*code | start_thread |
| optional start thread closure
|
|
*code | sleep |
| optional sleep closure
|
|
bool | binary |
| binary transfer flag (for singleFileEvent())
|
|
bool | writable |
| chech if path is writable for others in constructor
|
|
string | check_file |
| name of check writable file
|
|
*bool | skip_file_content_retrieval |
| whether or not to skip the file content retrieval in runOnce()
|
|
SFTPClient | new_sftp |
| For when the client gets updating during polling.
|
|
SftpPoller client class implementation.
See the constructor options for information on how to configure this object; note that either
delete_remote_file
or
move_remote_file
must be set, or SFTP files polled will remain where they are in the remote SFTP server, unless they are removed or moved during polling processing.
Only one of these options may be set at one time; setting both will result in an error
called after singleFileEvent() for each matching file individually whenever matching files are polled with the list of matching file names; if any error occurs here, the polling operation stops
This method would normally delete / rename / move files processed by singleFileEvent() so that they would not be polled a second time. If an error occurs in this operation, then the polling event will stop since continuing after failing to delete, rename, or move a file already processed would cause the file to be processed more than once.
- Parameters
-
fih | a hash of file data and information with the following keys:
name: the name of the file, link, or directory
size: the size of the file in bytes
uid: the UID of the owner of the file
gid: the GID of the owner of the file
mode: the permissions / mode of the file
atime: the last accessed date/time of the file
mtime: the last modified date/time of the file
type: the type of file; one of: "REGULAR" , "DIRECTORY" , "SYMBOLIC-LINK" , "BLOCK-DEVICE" , "CHARACTER-DEVICE" , "FIFO" , "SYMBOLIC-LINK" , "SOCKET" , or "UNKNOWN"
perm: a string giving UNIX-style permissions for the file (ex: "-rwxr-xr-x")
data: the file's data; this will be a string unless the "binary" option is set to True, in which case this key is assigned to the files binary data; this hash key is only present if skip_file_content_retrieval was False in the SftpPoller::SftpPoller::constructor options
filepath: the remote filepath relative to SFTP root directory
|