Skip to content

Releases: peak/s5cmd

v2.3.0

16 Dec 15:53
991c9fb
Compare
Choose a tag to compare

Changelog

v2.3.0 - 16 Dec 2024

Breaking changes

Features

Improvements

  • Upgraded alpine base image to 3.18. (#661) @embik
  • Upgraded aws-sdk-go to v1.44.298. (#684) @matan129
  • Upgraded lanrat/extsort to v1.0.2 (#717) @gkowarzyk
  • Changed signaling channels by replacing chan bool with chan struct{} for efficiency. (#733)

Bugfixes

  • Fixed the cp command to work with the --content-type flag when performing a copy operation from S3 to S3. (#738)
  • Fixed a bug in sync command where objects in Glacier storage at the destination were being overwritten during synchronization (#712) @stevenmcastano
  • Fixed a bug in sync command where source objects with absolute paths failed to match destination paths, causing unnecessary copying during each sync operation.(#676) @bounlu

v2.2.2

15 Sep 16:47
48f7e59
Compare
Choose a tag to compare

Changelog

v2.2.2 - 13 Sep 2023

Bugfixes

  • Fixed cp and pipe to not omit some of the metadata flags. (#657)

v2.2.1

23 Aug 07:04
be63977
Compare
Choose a tag to compare

v2.2.1 - 23 Aug 2023

Bugfixes

  • Fixed incorrect s5cmd version output (#650)

v2.2.0

21 Aug 15:19
550a846
Compare
Choose a tag to compare

v2.2.0 - 21 Aug 2023

Features

  • Added pipe command. (#182)
  • Added presign command. (#634) @zemul
  • Added file types to select queries with more range of options to set during the query. (#494)
  • Added --include flag to cp, rm, and sync commands. (#516)
  • Added --show-progress flag to cp command. (#51)
  • Added --content-disposition flag to cp command. (#569)
  • Added --show-fullpath flag to ls command. (#596)
  • Added --metadata flag to cp and pipe commands to set arbitrary metadata for the objects. (#537)

Improvements

  • Implemented concurrent multipart download support for cat command. (#245)
  • Upgraded minimum required Go version to 1.19. (#583)
  • ListObjectsV2 S3 API is enabled for Google Cloud Storage. (#617)
  • Added installation instructions for FreeBSD. (#573) @ehaupt
  • Added ppc64le support. (#552) @mgiessing

Bugfixes

  • Fixed a bug that causes sync command with whitespaced flag value to fail. (#541) ataberkgrl
  • Fixed a bug introduced with external sort support in sync command which prevents sync to an empty destination with --delete option. (#576)
  • Fixed a bug in sync command, which previously caused the command to continue running even if an error was received from the destination bucket. (#564)
  • Fixed a bug that causes local files to be lost if downloads fail. (#479)
  • Fixed a bug where cp command could not upload a non-regular file to remote destination. (#618)
  • Fixed a crash where a file or a remote object is removed or renamed after it is listed to be operated on. (#620)

v2.1.0

19 Jun 10:58
3efbbe8
Compare
Choose a tag to compare

Changelog

Breaking changes

  • Adjacent slashes in key are no longer removed when uploading to remote. Before s5cmd cp file.txt s3://bucket/a//b///c/ would copy to s3://bucket/a/b/c/file.txt but now to s3://bucket/a//b///c/file.txt.(#459)
  • --endpoint-url will not accept URLs without scheme such as example.com. Instead, it will give an error and ask for an url with a scheme; either http://example.com or https://example.com (#496).

Features

  • Added --content-type and --content-encoding flags to cp command. (#264)
  • Added --profile flag to allow users to specify a named profile. (#353)
  • Added --credentials-file flag to allow users to specify path for the AWS credentials file instead of using the default location.
  • Added --all-versions flag to ls, rm, du and select subcommands to apply operation on(/over) all versions of the objects. (#475)
  • Added --version-id flag to cat, cp/mv, rm, du and select subcommands to apply operation on(/over) a specific versions of the object. (#475)
  • Added bucket-version command to configure bucket versioning. Bucket name alone returns the bucket versioning status of the bucket. Bucket versioning can be configured with set flag. (#475)
  • Added --raw flag to cat and select subcommands. It disables the wildcard operations. (#475)
  • Added bench.py script under new benchmark folder to compare performances of two different builds of s5cmd. (#471)

Improvements

  • Disable AWS SDK logger if log level is not trace. (#460)

  • Allow adjacent slashes to be used as keys when uploading to remote. (#459)

  • Debian packages are provided on releases page (#380)

  • Upgraded minimum required Go version to 1.17.

  • The sync command uses external sort instead of internal sort. This change
    reduces RAM usage from ~10 GB to ~1.5 GB for sync operation of a directory containing
    1,000,000 files at a cost of speed (20% slower for 1,000,000 objects). For smaller
    directories (~50,000 files) there is no significant change in speed. (#483)

  • Improve auto-completion support of s5cmd for zsh and bash, start supporting pwsh and stop the support for fish. Now s5cmd can complete bucket names, s3 keys in a bucket and the local files. However, install-completion flag no longer installs the completion script to *rc files instead it merely gives instructions to install autocompletion and provides the autocompletion script (#500).

Bugfixes

  • Fixed a bug where (--stat) prints unnecessarily when used with help and version commands (#452)
  • Changed cp error message to be more precise. "given object not found" error message now will also include absolute path of the file. (#463)
  • Fixed a bug where some part of the destination path is removed by cp and sync subcommands (#360)
  • Fixed a bug where proxy is not being used when --no-verify-ssl flag is used. (#445)
  • Fixed unknown url format error when object key also includes s3:// e.g. s5cmd ls s3://foo/bar/s3://baz (#449)
  • Fixed a bug where the local file created for the download operation was not deleted if the download fails in Windows. (#348)

v2.1.0-beta.1

17 Mar 07:04
3e08061
Compare
Choose a tag to compare
v2.1.0-beta.1 Pre-release
Pre-release

Changelog

  • c02fdb6 Add a packaging badge (#439)
  • 914e701 Add benchmark script to compare two different builds of s5cmd (#471)
  • 36d74f6 Add installation instructions for conda (#468)
  • 6e3fc4f Change cp error not being descriptive (#463)
  • 38b0fdf Make it possible to override content-type and content-encoding from CLI arguments (#467)
  • d5dde3c Remove stat flag unnecessary prints (#455)
  • eea87b1 Update changelog for v2.0.0 (#458)
  • 8220438 changelog: update Improvements sections (#473)
  • 2a6c7cc ci: use Go 1.19 for builds, remove 1.16 support (#481)
  • 84c3696 command/app: force endpoint-url to have scheme (#496)
  • 5e867c9 command: add extensive autocompletion support (#500)
  • 13aa68a command: fix target file is created despite the download failure (#477)
  • 7c90f8a command: retry upload on s3.NoSuchUpload (#470)
  • 5b64469 disable aws sdk logger if log level is not "trace" (#460)
  • 711ddf0 e2e/app_test: fix failed test due to new cleanup (#504)
  • d949fe0 e2e/util_test: enable tests to work using external endpoint (#506)
  • 37e9a68 e2e/util_test: remove unnecessary test directory cleanup (#512)
  • d50ef44 e2e: refactor cleanup behavior using t.Cleanup (#502)
  • c67760e goreleaser: add nfpm configuration for Debian packages (#437)
  • 88a4641 log, parallel: fix help flag panicking (#509)
  • 90b7418 main: use signal.NotifyContext to handle signals (#510)
  • 3e08061 readme: fix ci badge URL (#546)
  • e9c4d7e readme: we dont support inline comments since v2 (#486)
  • c01c5a2 storage/s3: Fix proxy with no-verify-ssl flag (#457)
  • d21a491 storage/s3: add SlowDown as retryable (#507)
  • 6b87fb4 storage/url: Allow usage of adjacent slashes (#459)
  • 22592e5 storage/url: add nil check for URL.filterRegex in URL.Match (#511)
  • 83ce8bc storage/url: allow wildcards to match new line characters (#505)
  • 6727b11 storage/url: fixes the bug where some part of destination path is removed by cp (#456)
  • 717bf5b storage: add profile flag (#453)
  • 73f4abb storage: remove unused notImplemented type (#476)
  • a8a226f update readme: add a section about numworkers/concurrency (#465)
  • deb16c9 vendor: update urfave/cli to v2.11.2 (#495)
  • 123b1c7 vendor: upgrade gofakes3 to v0.0.11 (#472)

v2.0.0

04 Jul 12:20
35bb2fa
Compare
Choose a tag to compare

Changelog

Breaking changes

  • Dropped inline comment feature for run command. Previously s5cmd supported a command with an inline comment like ls s3://bucket/object.gz # inline comment. (#309)
  • Changed homebrew installation command on macOS. Users can install s5cmd via brew install peak/tap/s5cmd. (#356)
  • Print usage errors to stderr instead of stdout and do not show help text on usage error. (#399)
  • Working directory of the Docker image changed to /aws from /. (#412)

Features

  • Added sync command to synchronize two given buckets, prefixes, or objects. (#3)
  • Added AWS Single Sign-On (SSO) profiles support. (#385)
  • Added --force-glacier-transfer flag to select command. (#346)
  • Added --ignore-glacier-warnings flag to cp, mv and select commands. (#346)
  • Added --request-payer flag to include x-amz-request-payer in header while sending GET, POST and HEAD requests. (#297) @Kirill888
  • Added --use-list-objects-v1 flag to force using S3 ListObjects API instead of ListObjectsV2 API. (#405) @greenpau
  • Added trace log level(--log=trace) which enables SDK debug logs.(#363)

Improvements

  • Upgraded minimum required Go version to 1.16.

Bugfixes

  • 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)
  • Updated region detection call to use current session's address resolving method (#314)
  • Fixed a bug where lines with large tokens fail in run command. sync was failing when it finds multiple files to remove. (#435, #436)
  • Print usage error if given log level(--log) is not valid. (#430)
  • Fixed a bug where (--stat) is ignored when log level is error. (#359)

v2.0.0-beta.2

13 May 12:44
c978e4a
Compare
Choose a tag to compare
v2.0.0-beta.2 Pre-release
Pre-release

Changelog

Breaking changes

  • Dropped inline comment feature for run command. Previously s5cmd supported a command with an inline comment like ls s3://bucket/object.gz # inline comment. (#309)
  • Changed homebrew installation command on macOS. Users can install s5cmd via brew install peak/tap/s5cmd. (#356)
  • Print usage errors to stderr instead of stdout and do not show help text on usage error. (#399)
  • Working directory of the Docker image changed to /aws from /. (#412)

Features

  • Added sync command to synchronize two given buckets, prefixes, or objects. (#3)
  • Added AWS Single Sign-On (SSO) profiles support. (#385)
  • Added --force-glacier-transfer flag to select command. (#346)
  • Added --ignore-glacier-warnings flag to cp, mv and select commands. (#346)
  • Added --request-payer flag to include x-amz-request-payer in header while sending GET, POST and HEAD requests. (#297) @Kirill888
  • Added --use-list-objects-v1 flag to force using S3 ListObjects API instead of ListObjectsV2 API. (#405) @greenpau

Improvements

  • Upgraded minimum required Go version to 1.16.

Bugfixes

  • 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)
  • Updated region detection call to use current session's address resolving method (#314)
  • Fixed a bug where lines with large tokens fail in run command. sync was failing when it finds multiple files to remove. (#435, #436)

v2.0.0-beta

08 Apr 11:32
df6b29f
Compare
Choose a tag to compare
v2.0.0-beta Pre-release
Pre-release

Changelog

Breaking changes

  • Dropped inline comment feature for run command. Previously s5cmd supported a command with an inline comment like ls s3://bucket/object.gz # inline comment. (#309)
  • Changed homebrew installation command on macOS. Users can install s5cmd via brew install peak/tap/s5cmd. (#356)
  • Print usage errors to stderr instead of stdout and do not show help text on usage error. (#399)

Features

  • Added sync command to synchronize two given buckets, prefixes, or objects. (#3)
  • Added AWS Single Sign-On (SSO) profiles support. (#385)
  • Added --force-glacier-transfer flag to select command. (#346)
  • Added --ignore-glacier-warnings flag to cp, mv and select commands. (#346)
  • Added --request-payer flag to include x-amz-request-payer in header while sending GET, POST and HEAD requests. (#297) @Kirill888
  • Added --use-list-objects-v1 flag to force using S3 ListObjects API instead of ListObjectsV2 API. (#405) @greenpau

Improvements

  • Upgraded minimum required Go version to 1.16.

Bugfixes

  • 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)
  • Updated region detection call to use current session's address resolving method (#314)

v1.4.0

21 Sep 10:11
d7a0dda
Compare
Choose a tag to compare

Changelog

Features

  • 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 to cp, rm, ls, du and select commands. This flag allows users to exclude objects with given pattern. (#266)
  • Added --raw flag to cp and rm 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 to cp and mv commands. It adds support for setting cache control and expires header to S3 objects. (#318) @tombokombo
  • Added --force-glacier-transfer flag to cp command. It forces a transfer request on all Glacier objects. (#206)
  • Added --source-region and destination-region flags to cp command. It allows overriding bucket region. (#262) @kemege

Improvements

  • Added MacPorts installation option. (#311) @manojkarthick
  • Added S3_ENDPOINT_URL environment variable (#343) @Dexus
  • Prevent retries if a token related error is received (#337)

Bugfixes

  • 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)