All notable changes to this project will be documented in this file.
- implement follow symlinks and no follow symlinks options (agouil)
- prevent deleting excluded files by default to match aws cli behavior
- add a
deleteExcluded
option to delete excluded files
- implement dynamic relocation using callbacks
- the abort feature from the TransferMonitor class has been replaced with a new abortSignal option
sync
method now returns a SyncBucketWithBucketCommandOutput, SyncBucketWithLocalCommandOutput or SyncLocalWithBucketCommandOutput object- old methods
bucketWithBucket
,bucketWithLocal
andlocalWithBucket
have been removed.sync
method should be used instead - dynamic aws command input options can now be set by passing a function to the
commandInput
option (functions were previously defined for each commandInput property)
- migrate the module to typescript
- replace
jest
with the native node test runner
- use composition instead of inheritance with
S3Client
to behave like a plugin - move
@aws-sdk/client-s3
and@aws-sdk/abort-controller
from dependencies to peer dependencies - deprecated option
flatten
has been removed, userelocations
option instead
- add aws cli
--include
and--exclude
support throughfilters
option - replace promise chunks with promise queues for increased concurrency and performances
- support multipart uploads when synchronizing a remote bucket with a local file system
- replace
mocha
withjest
- support aws cli
--size-only
option throughsizeOnly
property
monitor
option is now an instance ofS3SyncClient.TransferMonitor
(formerlyEventEmitter
)- methods
bucketWithBucket
,bucketWithLocal
andlocalWithBucket
will not break but should be considered deprecated.sync
single method should be used instead
- a single
sync
method has been added as a replacement ofbucketWithBucket
,bucketWithLocal
andlocalWithBucket
methods
- add support for the AWS SDK command options through the
commandInput
option
- support progress tracking and aborting transfers with
monitor
option
- support synchronizing two remote buckets
- add
relocations
option to manage different folder structures in source and target in a simple and flexible way - deprecate
flatten
option in favor ofrelocations
- add
flatten
option
- reduce default concurrency on file transfers
- support synchronizing a local file system with a remote bucket
- support synchronizing a remote bucket with a local file system
- synchronize new and updated files only (using object size and last modified time)
- support aws cli s3 sync --delete option
- support aws cli s3 sync --dryrun option
- support concurrent file transfers
- support synchronizing any number of files (no 1000 files limit)