s5cmd v2.0.0 Release Notes

Release Date: 2022-07-04 // over 1 year ago
  • 💥 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)

Previous changes from v1.4.0

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