NAME
Net::DownloadMirror - Perl extension for mirroring a remote location via FTP to the local directory
SYNOPSIS
use Net::DownloadMirror;
my $um = Net::DownloadMirror->new(
ftpserver => 'my_ftp.hostname.com',
user => 'my_ftp_user_name',
pass => 'my_ftp_password',
);
$um->Download();
or more detailed
my $md = Net::DownloadMirror->new(
ftpserver => 'my_ftp.hostname.com',
user => 'my_ftp_user_name',
pass => 'my_ftp_password',
localdir => 'home/nameA/homepageA',
remotedir => 'public',
debug => 1 # 1 for yes, 0 for no
timeout => 60 # default 30
delete => 'enable' # default 'disabled'
connection => $ftp_object, # default undef
# "exclusions" default empty arrayreferences []
exclusions => ["private.txt", "Thumbs.db", ".sys", ".log"],
# "subset" default empty arrayreferences [ ]
subset => [".txt, ".pl", ".html", "htm", ".gif", ".jpg", ".css", ".js", ".png"],
# or substrings in pathnames
# exclusions => ["psw", "forbidden_code"]
# subset => ["name", "my_files"]
# or you can use regular expressions
# exclusinos => [qr/SYSTEM/i, $regex]
# subset => {qr/(?i:HOME)(?i:PAGE)?/, $regex]
filename => "modified_times",
);
$um->Download();
DESCRIPTION
This module is for mirroring a remote location to a local directory via FTP. For example websites, documentations or developmentstuff which ones were uploaded or changed in the net. Local files will be overwritten, also in case they are newer. It is not developt for mirroring large archivs. But there are not in principle any limits.
Constructor and Initialization
- (object) new (options) Net::DownloadMirror is a derived class from Net::MirrorDir. For detailed information about constructor or options read the documentation of Net::MirrorDir.
methods
- (1) _Init (%arg) This function is called by the constructor. You do not need to call this function by yourself.
- (1|0) Downlaod (void) Call this function for mirroring automatically, recommended!!!
- (ref_hash_modified_files) CheckIfModified (ref_array_local_files) Takes a hashreference of remoe filenames to compare the last modification time, which is stored in a file, named by the attribute "filename", while downloading. Returns a reference of a array.
- (1|undef) UpdateLastModified (ref_array_remote_files) Update the stored modified-times of the remote files.
- (1|0) StoreFiles (ref_array_paths) Takes a arrayreference of remote-paths to download via FTP.
- (1|0) MakeDirs (ref_array_paths) Takes a arrayreference of directories to make in the local directory.
- (1|0) DeleteFiles (ref_array_paths) Takes a arrayreference of files to delete in the local directory.
- (1|0) RemoveDirs (ref_array_paths) Takes a arrayreference of directories to remove in the local directory.
- (1) CleanUp (ref_array_paths) Takes a arrayreference of directories to compare with the keys in the {_last_modified} hash. Is the key not in the array or the value is incorrect, the key will be deleted.
- (ref_array_local_paths) RtoL (ref_array_remote_paths) Takes a arrayreference of Remotepathnames and returns a arrayreference of the corresponding Localpathnames.
- (ref_array_remote_paths) LtoR (ref_array_local_paths) Takes a arrayreference of Localpathnames and returns a arrayreference of the corresponding Remotepathnames.
optional options
- filename The name of the file in which the last modified times will be stored. default = 'lastmodified_remote'
-
=item delete When directories or files are to be deleted = 'enable' default = 'disabled'
EXPORT
None by default.
SEE ALSO
Net::MirrorDir
Net::UploadMirror
Tk::Mirror
http://freenet-homepage.de/torstenknorr/index.html
FILES
Net::MirrorDir 0.19
Storable
File::Path
BUGS
Maybe you'll find some. Let me know.
REPORTING BUGS
When reporting bugs/problems please include as much information as possible.
AUTHOR
Torsten Knorr, <create-soft@tiscali.de>
COPYRIGHT AND LICENSE
Copyright (C) 2006 - 2008 by Torsten Knorr
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.9.2 or, at your option, any later version of Perl 5 you may have available.
6 POD Errors
The following errors were encountered while parsing the POD:
- Around line 309:
'=item' outside of any '=over'
- Around line 314:
You forgot a '=back' before '=head2'
- Around line 316:
'=item' outside of any '=over'
- Around line 356:
You forgot a '=back' before '=head2'
- Around line 358:
'=item' outside of any '=over'
- Around line 366:
You forgot a '=back' before '=head2'