Gsutil

Latest version: v5.33

Safety actively analyzes 688053 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 20 of 24

3.27

=======================================

New Features
------------

- Added a human readable option (-h) to ls command.
- Changed WildcardIterator not to materialize list of all matching files from
directory listing (so works faster when walking over large directories)
- Added -f option to setacl command to allow command to continue after errors
encountered.
- Add manifest log support for the cp command.
- Added never option for check_hashes_config; fixed bug that assumes an ETag
is always returned from server.
- Made gsutil provide friendlier error message if attempting non-public data
access with missing credentials.
- Set 70 second default socket timeout for httplib.
- Add ability to run a single test class or function with the test command.

Bug Fixes
---------

- Don't check for updates if the user has no credentials configured. This
fixes a bug for users without credentials trying to use gsutil for first
time.
- Fixed case where chacl command incorrectly recognized an email address as a
domain.
- Fix setmeta command for S3 objects.
- Fixed bug where wildcarded dest URI attempted string op on Key object.
- Fixed case where gsutil -q outputted progress output when doing a streaming
upload.
- Error handling for out of space during downloads.
- Include ISO 8601-required "Z" at end of timestamp string for gsutil ls -l,
to be spec-compliant.
- Removed deprecated setmeta syntax and fixed unicode issues.
- Changed update command not to suggest running sudo if running under Cygwin.
- Removed references to deprecated gs-discussion forum from gsutil built-in
help.
- Add literal quotes around CORS config example URL in gsutil setcors help to
avoid having example URL turn into an HREF in auto-generated doc.

Other Changes
-------------

- Added proper setup.py to make gsutil installable via PyPi.
- Added warning to gsutil built-in help that delete operations cannot be
undone.
- Replaced gsutil's OAuth2 client implementation with oauth2client.
- Updates to perfdiag.
- Updated config help about currently supported settings.
- Fixes to setup.py and modified version command.
- Move gslib/commands/cred_types.py to gslib, so only Command subclasses live
in gslib/commands.
- Updated gsutil setmeta help no longer to warn that setmeta with versioning
enabled creates a new object.

3.26

=======================================

New Features
------------

- Added support for object composition.
- Added support for external service accounts.
- Changed gsutil to check for available updates periodically (only while
stdin, stderr, stdout are connected to a TTY, so as not to interfere with
cron jobs).
- Added chdefacl command.
- Made gsutil built-in help available under
https://developers.google.com/storage/docs/gsutil
- Add a command suggestion when the command name is not found.
- Added byte suffix parsing to the -s parameter of perfdiag.
- Added --help support to subcommands. Fixes 96.
- Updated perfdiag command to track availability and record TCP settings.
- Added metadata parameter to perfdiag command.
- Added support for specifying byte range to cat command.
- Output more bucket metadata on ls -Lb.
- Implemented gsutil -q (global quiet) option (fixes issue 130). Also changed
gsutil to output all progress indicators using logging levels. Also changed
help command not to output bold escape sequences and not use PAGER if stdout
is not a tty, which also fixes bug that caused gsutil help test to fail.
- Plumbed https_validate_certificates through to OAuth2 plugin handler,
allowing control over cert validation for OAuth2 requests
- Fixed ISO 639.1 ref in config command help text

Bug Fixes
---------

- Fixed bug where gsutil cp -D didn't preserve metadata
- Fixed problem where gsutil -m is hard to interrupt (partial fix for issue
99 - only for Linux/MacOS; problem still exists for Windows).
- Fixed broken reference to boto_lib_dir in update command.
- Made changing ACL not retry on 400 error.
- Fixed name expansion bug for case where uri_strs is itself an iterator
(issue 131); implemented additional naming unit test for this case.
- Fixed flaky gsutil rm test
- Fixed a bug in the chacl command that made it so you couldn't delete the
AllAuthenticatedUsers group from an ACL.

Other Changes
-------------

- Refactored gsutil main function into gslib, with gsutil being a thin
wrapper.
- Added a test for the update command.
- Renamed gsutil meta_generation params to metageneration, for consistency
with GCS docs.
- Removed .pyc files from tarball/zipfile.
- Added new root certs to cacerts.txt, to provide additional flexibility
in the future.

3.25

=======================================

Bug Fixes
---------

- Fixed two version-specific URI bugs:
1. gsutil cp -r gs://bucket1 gs://bucket2 would create objects in bucket2
with names corresponding to version-specific URIs in bucket1 (e.g.,
gs://bucket2/obj1361417568482000, where the "1361417568482000" part was
part of the object name, not the object's generation).

This problem similarly caused gsutil cp -r gs://bucket1 ./dir to create
files names corresponding to version-specific URIs in bucket1.
2. gsutil rm -a gs://bucket/obj would attempt to delete the same object
twice, getting a NoSuchKey error on the second attempt.

3.24

=======================================

Bug Fixes
---------

- Fixed bug that caused attempt to dupe-encode a unicode filename.

Other Changes
-------------

- Refactored retry logic from setmeta and chacl to use Retry decorator.
- Moved Retry decorator to third_party.
- Fixed flaky tests.

3.23

=======================================

Bug Fixes
---------

- Make version-specific URI parsing more robust. This fixes a bug where
listing buckets in certain cases would result in the error
'BucketStorageUri' object has no attribute 'version_specific_uri'

3.22

=======================================

New Features
------------

- Implemented new chacl command, which makes it easy to add and remove bucket
and object ACL grants without having to edit XML (like the older setacl
command).
- Implemented new "daisy-chain" copying mode, which allows cross-provider
copies to run without buffering to local disk, and to use resumable uploads.
This copying mode also allows copying between locations and between storage
classes, using the new gsutil cp -D option. (Daisy-chain copying is the
default when copying between providers, but must be explicitly requested for
the other cases to keep costs and performance expectations clear.)
- Implemented new perfdiag command to run a diagnostic test against
a bucket, collect system information, and report results. Useful
when working with Google Cloud Storage team to resolve questions
about performance.
- Added SIGQUIT (^\) handler, to allow breakpointing a running gsutil.

Bug Fixes
---------

- Fixed bug where gsutil setwebcfg signature didn't match with
HMAC authentication.
- Fixed ASCII codec decode error when constructing tracker filename
from non-7bit ASCII input filename.
- Changed boto auth plugin framework to allow multiple plugins
supporting requested capability, which fixes gsutil exception
that used to happen where a GCE user had a service account
configured and then ran gsutil config.
- Changed Command.Apply method to be resilient to name expansion
exceptions. Before this change, if an exception was raised
during iteration of NameExpansionResult, the parent process
would immediately stop execution, causing the
_EOF_NAME_EXPANSION_RESULT to never be sent to child processes.
This resulted in the process hanging forever.
- Fixed various bugs for gsutil running on Windows:
- Fixed various places from a hard-coded '/' to os.sep.
- Fixed a bug in the cp command where it was using the destination
URI's .delim property instead of the source URI.
- Fixed a bug in the cp command's _SrcDstSame function by
simplifying it to use os.path.normpath.
- Fixed windows bug in tests/util.py _NormalizeURI function.
- Fixed ZeroDivisionError sometimes happening during unit tests
on Windows.

- Fixed gsutil rm bug that caused exit status 1 when encountered
non-existent URI.
- Fixed support for gsutil cp file -.
- Added preconditions and retry logic to setmeta command, to
enforce concurrency control.
- Fixed bug in copying subdirs to subdirs.
- Fixed cases where boto debug_level caused too much or too little
logging:
- resumable and one-shot uploads weren't showing response headers
when connection.debug > 0.
- payload was showing up in debug output when connection.debug
< 4 for streaming uploads.

- Removed XML parsing from setacl. The previous implementation
relied on loose XML handling, which could truncate what it sends
to the service, allowing invalid XML to be specified by the
user. Instead now the ACL XML is passed verbatim and we rely
on server-side schema enforcement.
- Added user-agent header to resumable uploads.
- Fixed reporting bits/s when it was really bytes/s.
- Changed so we now pass headers with API version & project ID
to create_bucket().
- Made "gsutil rm -r gs://bucket/folder" remove xyz_$folder$ object
(which is created by various GUI tools).
- Fixed bug where gsutil binary was shipped with protection 750
instead of 755.

Other Changes
-------------

- Reworked versioned object handling:
- Removed need for commands to specify -v option to parse
versions. Versioned URIs are now uniformly handled by all
commands.
- Refactored StorageUri parsing that had been split across
storage_uri and convenience; made versioned URIs render with
version string so StorageUri is round-trippable (boto change).
- Implemented gsutil cp -v option for printing the version-specific
URI that was just created.
- Added error detail for attempt to delete non-empty versioned
bucket. Also added versioning state to ls -L -b gs://bucket
output.
- Changed URI parsing to use pre-compiled regex's.
- Other bug fixes.

- Rewrote/deepened/improved various parts of built-in help:
- Updated 'gsutil help dev'.
- Fixed help command handling when terminal does not have the
number of rows set.
- Rewrote versioning help.
- Added gsutil help text for common 403 AccountProblem error.
- Added text to 'gsutil help dev' about legal agreement needed
with code submissions.
- Fixed various other typos.
- Updated doc for cp command regarding metadata not being
preserved when copying between providers.
- Fixed gsutil ls command documentation typo for the -L option.
- Added HTTP scheme to doc/examples for gsutil setcors command.
- Changed minimum version in documentation from 2.5 to 2.6 since
gsutil no longer works in Python 2.5.
- Cleaned up/clarify/deepen various other parts of gsutil
built-in documentation.

- Numerous improvements to testing infrastructure:
- Completely refactored infrastructure, allowing deeper testing
and more readable test code, and enabling better debugging
output when tests fail.
- Moved gslib/test_*.py unit tests to gslib/tests module.
- Made all tests (unit and integration, per-command and modules
(like naming) run from single gsutil test command.
- Moved TempDir functions from GsUtilIntegrationTestCase to
GsUtilTestCase.
- Made test runner message show the test function being run.
- Added file path support to ObjectToURI function.
- Disabled the test command if running on Python 2.6 and unittest2
is not available instead of breaking all of gsutil.
- Changed to pass GCS V2 API and project_id from boto config
if necessary in integration_testcaseCreateBucket().
- Fixed unit tests by using a GS-specific mocking class to
override the S3 provider.
- Added friendlier error message if test path munging fails.
- Fixed bug where gsutil test only cleaned up first few test files.
- Implemented setacl integration tests.
- Implemented StorageUri parsing unit tests.
- Implemented test for gsutil cp -D.
- Implemented setacl integration tests.
- Implemented tests for reading and seeking past end of file.
- Implemented and tests for it in new tests module.
- Changed cp tests that don't specify a Content-Type to check
for new binary/octet-stream default instead of server-detected
mime type.

- Changed gsutil mv to allow moving local files/dirs to the cloud.
Previously this was disallowed in the belief we should be
conservative about deleting data from local disk but there are
legitimate use cases for moving data from a local dir to the
cloud, it's clear to the user this would remove data from the
local disk, and allowing it makes the tool behavior more
consistent with what users would expect.
- Changed gsutil update command to insist on is_secure and
https_validate_certificates.
- Fixed release no longer to include extraneous boto dirs in
top-level of gsutil distribution (like bin/ and docs/).
- Changed resumable upload threshold from 1 MB to 2 MB.
- Removed leftover cloudauth and cloudreader dirs. Sample code
now lives at https://github.com/GoogleCloudPlatform.
- Updated copyright notice on code files.

Page 20 of 24

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.