=======================================
Major New Gsutil Version - Backwards-Incompatible Changes
------------------------------
- The Google Cloud Storage configuration data supported by the acl, cors,
and lifecycle commands now uses the JSON format instead of the older XML
format. gsutil 4.0 will fail and provide conversion instructions if an XML
configuration file is provided as an argument for a gs:// URL.
- gsutil no longer accepts arbitrary headers via the global -h flag.
Documented headers for gsutil commands are still supported; for the
full list of supported headers, see "gsutil help command_opts".
- The compose command will now default the destination object's
Content-Type to the Content-Type of the first source object if none
is provided via the -h global flag.
- The long-deprecated -t and -q options have been removed from the cp command.
- The perfdiag command no longer supports adding a host header.
- Having OAuth2 User Account credentials and OAuth2 Service Account
credentials configured simultaneously will now fail with an error message
to avoid confusion. Also, a single invalid credential will fail with an
error message. See "gsutil help creds" for details.
- Bucket relocate scripts have been removed.
- Downloading object names ending with '/' is no longer supported to avoid
problems this caused for directores using the Google Cloud Console.
- rm -r now implies rm -ra (removing all object versions recursively).
- All commands using the global -m option or a force option (such as
rm -f or cp -c) will now return a non-zero exit code if there are any
failures during the operation.
- MD5 and CRC32c values are now represented in base64 encoding instead
of hex encoding (this includes manifest files).
New Features
------------
- The Google Cloud Storage JSON API (v1) is now the default API used
by gsutil for all commands targeting gs:// URLs. The JSON API is more
bandwidth efficient than the older XML API when transferring metadata
and does not require separate calls to preserve object ACLs when copying.
The XML API will automatically be used when accessing s3:// URLs.
- The Google Cloud Storage XML API can be used in lieu of the JSON API
by setting 'prefer_api = xml' in the GSUtil section of your boto config file.
- Added the rsync command that can synchronize cloud and local directories.
- Added the signurl command that can generate Google Cloud Storage signed URLs.
- The perfdiag command now supports a listing latency test.
- The rb command now supports a -f flag allowing it to continue when errors
are encountered.
- The test command now supports a -s flag that runs tests against S3.
Other Changes
-------------
- All python files not under a third_party directory are now pylint-clean,
with the exception of TODO-format and a handful of warnings in root-level
files. As part of the de-linting process, many edge-case bugs were
identified and fixed.
- The ls command now operates depth-first (as in Unix ls) instead
of breadth-first.
- Daisy-chain copying does not currently support resumable uploads.
- Several compatibility improvements for Windows and S3.