Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GDAL-VSI-SYNC(1)		     GDAL		      GDAL-VSI-SYNC(1)

NAME
       gdal-vsi-sync - Synchronize source and target file/directory located on
       GDAL Virtual System Interface (VSI)

       Added in	version	3.11.

SYNOPSIS
	  Usage: gdal vsi sync [OPTIONS] <SOURCE> <DESTINATION>

	  Synchronize source and target	file/directory located on GDAL Virtual System Interface	(VSI).

	  Positional arguments:
	    --source <SOURCE>		     Source file or directory name [required]
	    --destination <DESTINATION>	     Destination file or directory name	[required]

	  Common Options:
	    -h,	--help			     Display help message and exit
	    --json-usage		     Display usage as JSON document and	exit
	    --config <KEY>=<VALUE>	     Configuration option [may be repeated]
	    --progress			     Display progress bar

	  Options:
	    -r,	--recursive		     Synchronize recursively
	    --strategy <STRATEGY>	     Synchronization strategy. STRATEGY=timestamp|ETag|overwrite (default: timestamp)
	    -j,	--num-threads <NUM-THREADS>  Number of jobs (or	ALL_CPUS)

DESCRIPTION
       gdal vsi	sync synchronize files and directories located on GDAL Virtual
       File  Systems  (compressed,  network hosted, etc...): /vsimem, /vsizip,
       /vsitar,	/vsicurl, ....

       This is an analog to the	UNIX rsync command. In the current implementa-
       tion, rsync would be more efficient for local file  copying,  but  gdal
       vsi  sync  main	interest is when the source or target is a remote file
       system like /vsis3/ or /vsigs/, in which	case it	can take into  account
       the  timestamps	of  the	files (or optionally the ETag/MD5Sum) to avoid
       unneeded	copy operations.

       This is implemented efficiently for:

        local filesystem <--> remote filesystem.

        remote	filesystem <-->	remote filesystem, where the source and	target
	 remote	filesystems are	the  same  and	one  of	 /vsis3/,  /vsigs/  or
	 /vsiaz/.   Or	when  the target is /vsiaz/ and	the source is /vsis3/,
	 /vsigs/, /vsiadls/ or /vsicurl/

       Similarly to rsync behavior, if the source filename ends	with a	slash,
       it  means that the content of the directory must	be copied, but not the
       directory name. For example, assuming /home/even/foo  contains  a  file
       bar, gdal vsi sync -r /home/even/foo/ /mnt/media	will create a /mnt/me-
       dia/bar	file.  Whereas gdal vsi	sync -r	/home/even/foo /mnt/media will
       create a	/mnt/media/foo directory which contains	a bar file.

       This is implemented by VSISync().

   Options
       -r, --recursive
	      Synchronize recursively.

       --strategy timestamp|ETag|overwrite
	      Determines which criterion is used to determine if a target file
	      must be replaced when it already exists and has  the  same  file
	      size as the source.  Only	applies	for a source or	target being a
	      network filesystem.

	      The  default  is timestamp (similarly to how aws s3 sync works).
	      For an upload operation, a remote	file is	replaced if it	has  a
	      different	 size  or if it	is older than the source.  For a down-
	      load operation, a	local file is  replaced	if it has a  different
	      size or if it is newer than the remote file.

	      The  ETag	 strategy assumes that the ETag	metadata of the	remote
	      file is the MD5Sum of the	file content, which is	only  true  in
	      the  case	of /vsis3/ for files not using KMS server side encryp-
	      tion and uploaded	in a single PUT	operation (so smaller than  50
	      MB  given	 the  default  used  by	 GDAL).	  Only	to be used for
	      /vsis3/, /vsigs/ or other	filesystems using a MD5Sum as ETAG.

	      The overwrite strategy will always  overwrite  the  target  file
	      with the source one.

       -j, --num-threads <value>
	      Number of	jobs to	run at once

EXAMPLES
   Example 1: Synchronize a local directory onto a S3 bucket
	  $ gdal vsi sync -r my_directory/ /vsis3/bucket/my_directory

AUTHOR
       Even Rouault <even.rouault@spatialys.com>

COPYRIGHT
       1998-2025

				 Jul 12, 2025		      GDAL-VSI-SYNC(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gdal-vsi-sync&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help