=head1 NAME

jets3t-synchronize - synchronize local directories with an Amazon S3 account

=head1 SYNOPSIS

=over 2

=item Synchronize the contents of a local directory with S3:


jets3t-synchronize [options] UP <S3path> <path1> [[path2] .. [pathN]]

=item Synchronize the contents of S3 with a local directory:


jets3t-synchronize [options] DOWN <S3path> <download_dir>

=back

=head1 OVERVIEW

jets3t-synchronize is a console (text mode) Java application for synchronizing
directories on a computer with an Amazon S3 account.

=head1 OPTIONS

=over 2

=item B<-h>, B<--help>

Displays a brief summary with all options.

=item B<-n>, B<--noaction>

No action taken. No files will be changed locally or on S3, instead
a report will be generating showing what will happen if the command
is run without the -n option.

=item B<-q>, B<--quiet>

Runs quietly, without reporting on each action performed or displaying
progress messages. The summary is still displayed.

=item B<-p>, B<--noprogress>

Runs somewhat quietly, without displaying progress messages.
The action report and overall summary are still displayed.

=item B<-f>, B<--force>

Force tool to perform synchronization even when files are up-to-date.
This may be useful if you need to update metadata or timestamps in S3.

=item B<-k>, B<--keepfiles>

Keep outdated files on destination instead of reverting/removing them.
This option cannot be used with --nodelete.

=item B<-d>, B<--nodelete>

Keep files on destination that have been removed from the source. This
option is similar to --keepfiles except that files may be reverted.
This option cannot be used with --keepfiles.

=item B<-m>, B<--move>

Move items rather than merely copying them. Files on the local computer will
be deleted after they have been uploaded to S3, or objects will be deleted
from S3 after they have been downloaded. Be *very* careful with this option.
This option cannot be used with --keepfiles.

=item B<-b>, B<--batch>

Download or upload files in batches, rather than all at once. Enabling this
option will reduce the memory required to synchronize large buckets, and will
ensure file transfers commence as soon as possible. When this option is
enabled, the progress status lines refer only to the progress of a single batch.

=item B<-s>, B<--skipmetadata>

Skip the retrieval of object metadata information from S3. This will make the
synch process much faster for large buckets, but it will leave
jets3t-synchronize with less information to make decisions. If this option is
enabled, empty files or directories will not be synchronized reliably.
This option cannot be used with the --gzip or --crypto options.

=item B<-g>, B<--gzip>

Compress (GZip) files when backing up and decompress gzipped files
when restoring.

=item B<-c>, B<--crypto>

Encrypt files when backing up and decrypt encrypted files when restoring. If
this option is specified the properties must contain a password.

=item B<--properties> I<filename>

Load the synchronizer app properties from the given file rather than from
a synchronizer.properties file in the classpath.

=item B<--credentials> I<filename>

Load your AWS credentials from an encrypted file, rather than from the
synchronizer.properties file. This encrypted file can be created using
the Cockpit application, or the JetS3t API library.

=item B<--acl> I<ACL_string>

Specifies the Access Control List setting to apply. This value must be one
of: PRIVATE, PUBLIC_READ, PUBLIC_READ_WRITE. This setting will override any
acl property specified in the synchronize.properties file

=item B<--reportlevel> I<level>

A number that specifies how much report information will be printed:

0 - no report items will be printed (the summary will still be printed).

1 - only actions are reported 

[Prefixes N, U, D, R, F, M]

2 - differences & actions are reported

[Prefixes N, U, D, R, F, M, d, r]

3 - DEFAULT: all items are reported 

[Prefixes N, U, D, R, F, M, d, r, -]

=back

=head1 NOTES

Required properties can be provided via: a file named F<synchronize.properties>
in the classpath (or F</etc/jets3t/synchronize.properties>), a file specified
with the --properties option, or by typing them in when prompted on the command
line. Required properties are:

=over 2

=item accesskey: Your AWS Access Key (Required)

=item secretkey: Your AWS Secret Key (Required)

=item password: Encryption password (only required when using crypto)

=back

Properties specified in this file will override those in F<jets3t.properties>
(or in F</etc/jets3t/jets3t.properties>).

=head1 REPORT

Report items are printed on a single line with an action flag followed by
the relative path of the file or S3 object. The report legend follows:

N: A new file/object will be created

U: An existing file/object has changed and will be updated

D: A file/object existing on the target does not exist on the source and
will be deleted.

d: A file/object existing on the target does not exist on the source but
because the --keepfiles or --nodelete option was set it was not deleted.

R: An existing file/object has changed more recently on the target than on the
source. The target version will be reverted to the older source version

r: An existing file/object has changed more recently on the target than on the
source but because the --keepfiles option was set it was not reverted.

-: A file is identical between the local system and S3, no action is necessary.

F: A file identical locally and in S3 was updated due to the Force option.

M: The file/object will be moved (deleted after it has been copied to/from S3).

=head1 SEE ALSO

http://jets3t.s3.amazonaws.com/applications/synchronize.html
