NAME¶
zsyncmake - Build control file for
zsync(1)
SYNTAX¶
zsyncmake [ { -z | -Z } ] [ -e ] [ -C ] [ -u
url ] [ -U
url ] [ -b
blocksize ] [ -o
outfile ] [ -f
targetfilename ] [ -v ]
filename
zsync -V
DESCRIPTION¶
Constructs a metafile for the zsync client program to use to perform partial
file downloads.
filename is the file that users wish to downloads;
zsyncmake constructs the appropriate metafile and writes
filename.zsync
in the current directory.
zsync will need at least one URL from which to download the file content. If the
.zsync will be in the same directory as the file to download, you can accept
the default - zsync includes a relative URL in the control file. If not, use
the
-u option to specify the URL. You should also specify a URL for the
uncompressed content with -U if available, as zsync can make use of this for
more efficient downloads sometimes. (You can edit the .zsync file and add
these afterwards - it has a simple key: value format in the header - but I
suggest you only do this once you are familiar with the tool.)
Note that zsyncmake itself does not (currently) verify the URLs or download any
data, you must provide the file data locally and check the URLs yourself.
OPTIONS¶
- -b blocksize
- Specify the blocksize to the underlying rsync algorithm. A
smaller blocksize may be more efficient for files where there are likely
to be lots of small, scattered changes between downloads; a larger
blocksize is more efficient for files with fewer or less scattered
changes. This blocksize must be a power of two. If not specified,
zsyncmake chooses one which it thinks is best for this file (currently
either 2048 or 4096 depending on file size) - so normally tyou should not
need to override the default.
- -C
- Tells zsyncmake not to generate any instructions in the
.zsync telling the client to compress the data it receives. This is
implied by -z, but this option is here in case you compress a file
yourself only for the transfer, but want the client to end up with the
uncompressed file (e.g. you are transferring an ISO, which is held
compressed on the server, but which the client cannot use unless it is
uncompressed). Without -C, zsyncmake will produce directions for the
client to compress the file it receives where appropriate; -C is here so
you can stop it telling the client to do that.
- -e
- Tells zsyncmake that the client must be able to receive the
exact file that was supplied. Without this option, zsyncmake only gives a
weaker guarantee - that the client will receive the data it contains (e.g.
it might transfer the uncompressed version of a .gz to the client). Note
that this still doesn't guarantee that the client will get it - the client
could ignore the directives in the zsync file, or might be incapable of
exactly reproducing the compression used. But with -e you know that
zsyncmake has made it possible to get the exact data - it will exit with
an error if it cannot.
- -f filename
- Set the filename to include in the output file (this is
what the file will be called when a user finished downloading it).
- -o outputfile
- Override the default output file name.
- -u url
- Specifies the URL from which users can download the content
of the supplied file. Users need the control file in order to find out
what parts of the file they already have, and they need the URLs to
retrieve the parts of the file that they don't already have. You can
specify multiple URLs by specifying -u multiple times. If not specified,
zsync assumes that the file and the .zsync will reside in the same public
directory, and includes a single relative URL.
- -U url
- Specifies a URL corresponding to the decompressed content
of the file (only applicable if it is a gzip file). zsync can sometimes
download more efficiently from the uncompressed data than from the
compressed data - it will take advantage of this if available. If no URLs
are specifies, zsync looks for a file without the .gz extension and
assumes that this will be in the same public dir as the .zsync, and
includes a relative URL to it.
- -v
- Enable verbose messages.
- -V
- Prints the version of zsync.
- -z
- Compress the file to transfer. Note that this overwrites
any file called filename.gz without warning (if you don't give a
filename, e.g. because you are reading from stdin, then zsync will use the
name supplied with -f, or as a last fallback, zsync-target.gz).
- zsync can work with compressed data, and, in most cases
where the data is not already compressed, it is more efficient to compress
it first. While you can just compress the file to transfer with gzip, if you
use this option then zsyncmake will compress the file for you, producing a
.gz file which is optimised for zsync. This can be 30% more efficient at
download time than compressing with gzip --best - but the compressed file
will not be as small at that produced by gzip.
- -Z
- zsyncmake automatically looks inside gzip compressed files
and exports the underlying, uncompressed data to the zsyncmake file. In
testing this has proved to provide greater download efficiency. -Z
overrides the default behaviour and treats gzip files as just binary data.
Use this if it is essential that the user receives the compressed data
(for instance because a cryptographic signature is available only for the
compressed data). zsync is typically no use if you specify -Z, unless the
gzip file was compressed with the special --rsync option to make it
friendly to differential transfers.
EXAMPLES¶
zsyncmake -C -u
http://ftp.uk.debian.org/debian/dists/sarge/main/binary-i386/Packages.gz
Packages.gz
Note use of -C to save the client compressing the file on receipt; the Debian
package system uses the file uncompressed.
zsyncmake -z my-subversion-dump
In this case there is a large, compressible file to transfer. This creates a
gzipped version of the file (optimised for zsync), and a .zsync file. A URL is
automatically added assuming that the two files will be served from the same
directory on the web server.
zsyncmake -e -u
http://www.mirrorservice.org/sites/ftp.freebsd.org/pub/FreeBSD/ports/distfiles/zsync-0.2.2.tar.gz
zsync-0.2.2.tar.gz
This creates a zsync referring to the named source tarball, which the client
should download from the given URL. This example is for downloading a source
tarball for a FreeBSD port, hence -e is specified so the client will be able
to match its md5sum.
AUTHORS¶
Colin Phipps <cph@moria.org.uk>
SEE ALSO¶
zsync(1)