Skip to content

s3mirror v1.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Nov 10:37
· 4 commits to main since this release
daff4ec

Upgrading from 1.0.x

verify_ssl now defaults to true on both sides. If your config leaves it out and points at an endpoint with a self-signed or private-CA certificate, as MinIO and Ceph setups often do, the connection check now fails with CERTIFICATE_VERIFY_FAILED and the run exits 1. Set verify_ssl to the path of your CA bundle, or to false if you really mean to skip the check. With it off, s3mirror logs one warning per endpoint.

The config is checked in full when it loads, so a typo that 1.0.4 ignored now stops the run with exit code 1. That covers unknown keys such as delete_extranous, quoted or zero numbers, a plain string for exclude_buckets, an endpoint_url without a scheme, and a key ID without its secret. The strings "true" and "false" are accepted for verify_ssl and delete_extraneous, so a quoted "false" now really does turn deletion off.

The most serious fix is that a failed listing no longer deletes anything. In 1.0.4, a source listing that failed, even partway through, was treated as an empty bucket: with deletion on, the destination's objects were deleted, and the run still reported success and exited 0. Now a failed listing or HeadBucket on either side skips that bucket, counts as an error and makes the run exit 1, so schedulers may see non-zero exits where they didn't before.

docker stop now works without --init: SIGTERM lets the running transfers finish and exits 143. Ctrl+C drops the queued work. Objects over about 78 GiB now copy with larger parts, and destination buckets outside us-east-1 are created in their region. --show-config and --debug shorten access key IDs.

The docs cover each of these. The 1.0 docs stay available from the version menu.

What's Changed

  • ci: bump the version automatically only for automated updates by @soakes in #24
  • ci: recognise automated updates by author email, not name by @soakes in #25
  • ci: publish a GitHub release for every release tag by @soakes in #26
  • ci: always install the newest Node 22 for the site build by @soakes in #27
  • docs: rebuild the website as a Starlight docs site by @soakes in #28
  • fix: skip a bucket whose listing fails instead of treating it as empty by @soakes in #29
  • fix: check TLS certificates by default by @soakes in #30
  • fix: only create a destination bucket when HeadBucket says it's missing by @soakes in #31
  • fix: create destination buckets in the destination's region by @soakes in #32
  • fix: parse delete_extraneous and verify_ssl strictly by @soakes in #33
  • fix: raise the part size for objects that need more than 10,000 parts by @soakes in #34
  • fix: stop cleanly on SIGTERM and drop queued work on Ctrl+C by @soakes in #35
  • fix: shorten access key IDs in --show-config and hide short ones by @soakes in #36
  • fix: check every config section, key and value when the file loads by @soakes in #37
  • ci: archive a release line's docs when the next line ships by @soakes in #38
  • chore(release): bump version to 1.1.0 by @soakes in #39

Full Changelog: v1.0.4...v1.1.0