- Added
--ignore-glacier-warnings
flag tocp
,mv
andselect
commands. (#346) - Added
--force-glacier-transfer
flag toselect
command. (#404) - Added AWS Single Sign-On (SSO) profiles support (#385)
- Fixed a bug about precedence of region detection, which auto region detection would always override region defined in environment or profile. (#325)
- Fixed a bug where errors did not result a non-zero exit code. (#304)
- Print error if the commands file of
run
command is not accessible. (#410)
- Added
select
command. It allows to select JSON records from objects using SQL expressions. (#299) @skeggse - Added
rb
command to remove buckets. (#303). - Added
--exclude
flag tocp
,rm
,ls
,du
andselect
commands. This flag allows users to exclude objects with given pattern. (#266) - Added
--raw
flag tocp
andrm
commands. It disables the wildcard operations. It is useful when an object contains glob characters which interfers with glob expansion logic. (#235) - Added
--cache-control
and--expires
flags tocp
andmv
commands. It adds support for setting cache control and expires header to S3 objects. (#318) @tombokombo - Added
--force-glacier-transfer
flag tocp
command. It forces a transfer request on all Glacier objects. (#206) - Added
--source-region
anddestination-region
flags tocp
command. It allows overriding bucket region. (#262) @kemege
- Added
MacPorts
installation option. (#311) @manojkarthick - Added
S3_ENDPOINT_URL
environment variable (#343) @Dexus - Prevent retries if a token related error is received (#337)
- Change the order of precedence in URL expansion in file system. Glob (*) expansion have precedence over directory expansion. (#322)
- Fixed data race for concurrent writes for expand (#330)
- Fixed concurrent writes to the flags list of run command (#335)
- Fixed options usage on mv command (#338)
- Added global
--no-sign-request
flag. API requests won't be signed and credentials won't be used if this option is provided. It is useful for accessing public buckets. (#285)
- If retryable errors are received during command execution, users now can see what's happening under the hood. (#261)
- Update documentation about the AWS_PROFILE environment variable. (#275) @davebiffuk
- Fixed a bug where write-bit was required to upload a file. (#258)
- Fixed a bug where object could not be found if S3 key contains certain special characters. (#279) @khacminh
s5cmd
exits with code1
if given command is not found. It was0
before. (#295)
- Statically link
s5cmd
in Docker image (#250)
With this release, s5cmd
automatically determines region information of destination buckets.
- Added global
--dry-run
option. It displays which command(s) will be executed without actually having a side effect. (#90) - Added
--stat
option fors5cmd
and it displays program execution statistics before the end of the program output. (#148) - Added cross-region transfer support. Bucket regions are inferred, thus, supporting cross-region transfers and multiple regions in batch mode. (#155)
- Fixed incorrect MIME type inference for
cp
, give priority to file extension for type inference. (#214) - Fixed error reporting issue, where some errors from the
ls
operation were not printed.
- Requests to different buckets not allowed in
rm
batch operation, i.e., throw an error. - AWS S3
RequestTimeTooSkewed
request error was not retryable before, it is now. (205) - For some operations errors were printed at the end of the program execution. Now, errors are displayed immediately after being detected. (#136)
- From now on, docker images will be published on Docker Hub. (#238)
- Changed misleading 'mirroring' examples in the help text of
cp
. (#213)
With this release, Windows is supported.
- Dropped storage class short codes display from default behaviour of
ls
operation. Instead, use-s
flag withls
to see full names of the storage classes when listing objects.
- Added Server-side Encryption (SSE) support for mv/cp operations. It uses customer master keys (CMKs) managed by AWS Key Management Service. (#18)
- Added an option to show full form of storage class when listing objects. (#165)
- Add access control lists (ACLs) support to enable managing access to buckets and objects. (#26)
- Fixed infinite repetition issue on mv/cp operations which would occur if the destination matched the source wildcard. (#168)
- Fixed windows filepath issue, where backslashes should be treated as the path delimiter. (#178)
- All tests pass on windows, by converting and treating file paths to UNIX filepath format.
- Fixed a transfer issue where the object path contains particular regex metacharacters. (#111) @brendan-matroid
- Correctly parse object paths that contain whitespaces in run-mode. (#111) @brendan-matroid
- Retry when connection closed by S3 unexpectedly. (#189) @eminugurkenar
This is a major release with many breaking changes.
- Dropped
get
command. Users could get the same effect withs5cmd cp <src> .
. - Dropped
nested command
support. - Dropped
!
command. It was used to execute shell commands and was used in conjunction with nested commands. s5cmd -f
ands5cmd -f -
usage has changed tos5cmd run
.run
command accepts a file. If not provided, it'll listen for commands from stdin.- Exit code for errors was
127
. It is1
now. - Dropped
exit
command. It was used to change the shell exit code and usually a part of the nested command usage. - Dropped local->local copy and move support. (#118)
- All error messages are sent to stderr now.
-version
flag is changed toversion
command.- Dropped
batch-rm
command. It was not listed in the help output. Now that we support variadic arguments, users can remove multiple objects by providing wildcards or multiple arguments tos5cmd rm
command. (#106) - Virtual host style bucket name
resolving
is enabled by default for S3 and GCS. If you provide a custom endpoint via
--endpoint-url
flag (other than GCS and S3 transfer acceleration),s5cmd
will fall back to thepath-style
. (#92) - Listing a non-existent object will return exit code
1
, instead of0
. (#23) -ds
,-dw
,-us
and-uw
global flags are no longer available. Multipart concurrency and part size flags are now part of thecp/mv
command. New replacement flags are--concurrency | -c
and--part-size | -p
. (#110)- s5cmd
cp
command follows symbolic links by default (only when uploading to s3 from local filesystem). Use--no-follow-symlinks
flag to disable this feature. (#17) - Dropped
-parents
flag from copy command. Copy behaviour has changed to preserve the directory hierarchy as a default. Optional-flatten
flag is added to flatten directory structure. (#107) - Dropped
-vv
verbosity flag.--log
flag is introduced.
- Added
mb
command to make buckets. (#25) - Added
--json
flag for JSON logging. (#22) - Added S3 transfer acceleration support. (#40)
- Added Google Cloud Storage support. (#81)
- Added
cat
command to print remote object contents to stdout (#20)
- Correctly set
Content-Type
of a file on upload operations. (#33) - Fixed a bug where workers are unable to consume job if there are too many outstanding wildcard expansion requests. (#12, #58)
- Pre-compiled binaries are provided on releases page. (#21)
- AWS Go SDK is updated to support IAM role for service accounts. (#32)
- For copy/move operations,
s5cmd
now creates destination directory if missing. - Increase the soft limit of open files to 1000 and exits immediately when it encounters
too many open files
error. (#52)
- Use go modules.
- Update minimum required Go version to 1.13.
- Fix bug in brew install.
- Update travis configuration.
- Integrate Travis CI.
- Add option to disable SSL verification.
- Add endpoint url flag to support S3 compatible services.
- Use client's endpoint in GetSessionForBucket.
- Upgrade minimum required Go version to 1.7.
- Use 50mb chunks by default.
- Add human-readable output option -H.
- Implement "command -h".
- Refactor retryable error handling.
- Autodetect bucket region in command completion.
- Add HomeBrew formula.
- Add -s and -u options to overwrite files if sizes differ or files are lastly modified.
- Use constructor for *JobArgument.
- Add -dlw, -dlp and -ulw configuration options for worker pool.
- Fix get/cp without 2nd param or exact destination filename.
- Implement shell auto completion.
- Add context support for batch AWS requests.
- Implement "s5cmd get".
- Reduce idle-timer values.
- Add option -vv to log parser errors verbosely.
- Implement "du -g" to group by storage class.
- Use Go bool type instead of aws.Bool on recoverer.
- Make RequestError retryable.
- Implement verbose output (-vv flag).
- Add godoc for error types.