3.10.1 (2026-03-23)
- raise ValueError if api_endpoint is unset when using AnonymousCredentials in AsyncGrpcClient. (#1778) (17828ea316872938a98a6360b10a2495c54bbbcb)
3.10.0 (2026-03-18)
- [Bucket Encryption Enforcement] add support for bucket encryption enforcement config (#1742) (2a6e8b00e4e6ff57460373f8e628fd363be47811)
- [Rapid Buckets Reads] Use raw proto access for read resumption strategy (#1764) (14cfd61ce35365a409650981239ef742cdf375fb)
- [Rapid Buckets Benchmarks] init mp pool & grpc client once, use os.sched_setaffinity (#1751) (a9eb82c1b9b3c6ae5717d47b76284ed0deb5f769)
- [Rapid Buckets Writes] don't flush at every append, results in bad perf (#1746) (ab62d728ac7d7be3c4fe9a99d72e35ead310805a)
- [Windows] skip downloading blobs whose name contain
":"eg:C:D:etc when application runs in Windows. (#1774) (558198823ed51918db9c0137715d1e7f5b593975) - [Path Traversal] Prevent path traversal in
download_many_to_path(#1768) (700fec3bf7aa37bd5ea4b163cc3f9e8e6892bd5a) - [Rapid Buckets] pass token correctly, '&' instead of ',' (#1756) (d8dd1e074d2431de9b45e0103181dce749a447a0)
3.9.0 (2026-02-02)
- add get_object method for async grpc client (#1735) (0e5ec29bc6a31b77bcfba4254cef5bffb199095c)
- expose
DELETE_OBJECTinAsyncGrpcClient(#1718) (c8dd7a0b124c395b7b60189ee78f47aba8d51f7d) - update generation for MRD (#1730) (08bc7082db7392f13bc8c51511b4afa9c7b157c9)
- Move Zonal Buckets features of
_experimental(#1728) (74c9ecc54173420bfcd48498a8956088a035af50) - add default user agent for grpc (#1726) (7b319469d2e495ea0bf7367f3949190e8f5d9fff)
- expose finalized_time in blob.py applicable for GET_OBJECT in ZB (#1719) (8e21a7fe54d0a043f31937671003630a1985a5d2)
- add context manager to mrd (#1724) (5ac2808a69195c688ed42c3604d4bfadbb602a66)
- integrate writes strategy and appendable object writer (#1695) (dbd162b3583e32e6f705a51f5c3fef333a9b89d0)
- Add support for opening via
write_handleand fixwrite_handletype (#1715) (2bc15fa570683ba584230c51b439d189dbdcd580) - Add micro-benchmarks for writes comparing standard (regional) vs rapid (zonal) buckets. (#1707) (dbe9d8b89d975dfbed8c830a5687ccfafea51d5f)
- Add micro-benchmarks for reads comparing standard (regional) vs rapid (zonal) buckets. (#1697) (1917649fac41481da1adea6c2a9f4ab1298a34c4)
- send
user_agentto grpc channel (#1712) (cdb2486bb051dcbfbffc2510aff6aacede5e54d3) - add samples for appendable objects writes and reads (#1705) (2e1a1eb5cbe1c909f1f892a0cc74fe63c8ef36ff)
- add samples for appendable objects writes and reads (2e1a1eb5cbe1c909f1f892a0cc74fe63c8ef36ff)
- add support for
generation=0to avoid overwriting existing objects and addis_stream_opensupport (#1709) (ea0f5bf8316f4bfcff2728d9d1baa68dde6ebdae) - add support for
generation=0to prevent overwriting existing objects (ea0f5bf8316f4bfcff2728d9d1baa68dde6ebdae) - add
is_stream_openproperty to AsyncAppendableObjectWriter for stream status check (ea0f5bf8316f4bfcff2728d9d1baa68dde6ebdae)
- receive eof while closing reads stream (#1733) (2ef63396dca1c36f9b0f0f3cf87a61b5aa4bd465)
- Change contructors of MRD and AAOW AsyncGrpcClient.grpc_client to AsyncGrpcClient (#1727) (e730bf50c4584f737ab86b2e409ddb27b40d2cec)
- instance grpc client once per process in benchmarks (#1725) (721ea2dd6c6db2aa91fd3b90e56a831aaaa64061)
- update write handle on every recv() (#1716) (5d9fafe1466b5ccb1db4a814967a5cc8465148a2)
- Fix formatting in setup.py dependencies list (#1713) (cc4831d7e253b265b0b96e08b5479f4c759be442)
- implement requests_done method to signal end of requests in async streams. Gracefully close streams. (#1700) (6c160794afded5e8f4179399f1fe5248e32bf707)
- implement requests_done method to signal end of requests in async streams. Gracefully close streams. (6c160794afded5e8f4179399f1fe5248e32bf707)
3.8.0 (2026-01-13)
- flush the last chunk in append method (#1699) (89bfe7a5fcd0391da35e9ceccc185279782b5420)
- add write resumption strategy (#1663) (a57ea0ec786a84c7ae9ed82c6ae5d38ecadba4af)
- add bidi stream retry manager. (#1632) (d90f0ee09902a21b186106bcf0a8cb0b81b34340)
- implement "append_from_file" (#1686) (1333c956da18b4db753cda98c41c3619c84caf69)
- make flush size configurable (#1677) (f7095faf0a81239894ff9d277849788b62eb6ac5)
- compute chunk wise checksum for bidi_writes (#1675) (139390cb01f93a2d61e7ec201e3637dffe0b2a34)
- expose persisted size in mrd (#1671) (0e2961bef285fc064174a5c18e3db05c7a682521)
- add system test for opening with read_handle (#1672) (6dc711dacd4d38c573aa4ca9ad71fe412c0e49c1)
- no state lookup while opening bidi-write stream (#1636) (2d5a7b16846a69f3a911844971241899f60cce14)
- close write object stream always (#1661) (4a609a4b3f4ba1396825911cb02f8a9649135cd5)
3.7.0 (2025-12-09)
- Auto enable mTLS when supported certificates are detected (#1637) (4e91c54)
- Send entire object checksum in the final api call of resumable upload (#1654) (ddce7e5)
- Support urllib3 >= 2.6.0 (#1658) (57405e9)
- Fix for move_blob failure when the new blob name contains characters that need to be url encoded (#1605) (ec470a2)
3.6.0 (2025-11-17)
- Add support for partial list buckets (#1606) (92fc2b0)
- Make return_partial_success and unreachable fields public for list Bucket (#1601) (323cddd)
- zb-experimental: Add async write object stream (5ab8103)
- zb-experimental: Add async write object stream (#1612) (5ab8103)
3.5.0 (2025-11-05)
- experimental: Add base resumption strategy for bidi streams (#1594) (5fb85ea)
- experimental: Add checksum for bidi reads operation (#1566) (93ce515)
- experimental: Add read resumption strategy (#1599) (5d5e895)
- experimental: Handle BidiReadObjectRedirectedError for bidi reads (#1600) (71b0f8a)
- Indicate that md5 is used as a CRC (#1522) (961536c)
- Provide option to update user_agent (#1596) (02f1451)
- Deprecate credentials_file argument (74415a2)
- Flaky system tests for resumable_media (#1592) (7fee3dd)
- Make
download_rangescompatible withasyncio.create_task(..)(#1591) (faf8b83) - Make
download_rangescompatible withasyncio.create_task(..)(#1591) (faf8b83) - Redact sensitive data from OTEL traces and fix env var parsing (#1553) (a38ca19)
- Redact sensitive data from OTEL traces and fix env var parsing (#1553) (a38ca19)
- Use separate header object for each upload in Transfer Manager MPU (#1595) (0d867bd)
3.4.1 (2025-10-08)
- Fixes #1561 by adding an option to specify the entire object checksum for resumable uploads via the
upload_from_string,upload_from_file, andupload_from_filenamemethods (acb918e)
3.4.0 (2025-09-15)
- experimental: Add async grpc client (#1537) (ac57b8d)
- experimental: Add grpc client (#1533) (5674587)
3.3.1 (2025-08-25)
- Provide option to user to set entire object checksum at "initiate a resumable upload session" and send the same (#1525) (a8109e0)
- Send part's checksum for XML MPU part upload (#1529) (2ad77c7)
3.3.0 (2025-08-05)
3.2.0 (2025-07-04)
3.1.1 (2025-06-13)
- Add a check for partial response data (#1487) (7e0412a)
- Add trove classifier for Python 3.13 (0100916)
- deps: Require google-crc32c >= 1.1.3 (0100916)
- deps: Require protobuf >= 3.20.2, < 7.0.0 (0100916)
- deps: Require requests >= 2.22.0 (0100916)
- Remove setup.cfg configuration for creating universal wheels (#1448) (d3b6b3f)
- Resolve issue where pre-release versions of dependencies are installed (0100916)
- Segmentation fault in tink while writing data (#1490) (2a46c0b)
- Move quickstart to top of readme (#1451) (53257cf)
- Update README to break infinite redirect loop (#1450) (03f1594)
3.1.0 (2025-02-27)
- Add api_key argument to Client constructor (#1441) (c869e15)
- Add Bucket.move_blob() for HNS-enabled buckets (#1431) (24c000f)
3.0.0 (2025-01-28)
Please consult the README for details on this major version release.
- The default checksum strategy for uploads has changed from None to "auto" (#1383)
- The default checksum strategy for downloads has changed from "md5" to "auto" (#1383)
- Deprecated positional argument "num_retries" has been removed (#1377)
- Deprecated argument "text_mode" has been removed (#1379)
- Blob.download_to_filename() now deletes the empty destination file on a 404 (#1394)
- Media operations now use the same retry backoff, timeout and custom predicate system as non-media operations, which may slightly impact default retry behavior (#1385)
- Retries are now enabled by default for uploads, blob deletes and blob metadata updates (#1400)
- Add "auto" checksum option and make default (#1383) (5375fa0)
- Blob.download_to_filename() deletes the empty destination file on a 404 (#1394) (066be2d)
- Enable custom predicates for media operations (#1385) (f3517bf)
- Integrate google-resumable-media (#1283) (bd917b4)
- Retry by default for uploads, blob deletes, metadata updates (#1400) (0426005)
- Cancel upload when BlobWriter exits with exception (#1243) (df107d2)
- Changed name of methods
Blob.from_string()andBucket.from_string()tofrom_uri()(#1335) (58c1d03) - Correctly calculate starting offset for retries of ranged reads (#1376) (7b6c9a0)
- Filter download_kwargs in BlobReader (#1411) (0c21210)
- Remove deprecated num_retries argument (#1377) (58b5040)
- Remove deprecated text_mode argument (#1379) (4d20a8e)
- Correct formatting and update README.rst (#1427) (2945853)
- Fix issue with exceptions.py documentation (#1328) (22b8c30)
2.19.0 (2024-11-21)
- Add integration test for universe domain (#1346) (02a972d)
- Add restore_bucket and handling for soft-deleted buckets (#1365) (ab94efd)
- Add support for restore token (#1369) (06ed15b)
- IAM signBlob retry and universe domain support (#1380) (abc8061)
- Allow signed post policy v4 with service account and token (#1356) (8ec02c0)
- Do not spam the log with checksum related INFO messages when downloading using transfer_manager (#1357) (42392ef)
2.18.2 (2024-08-08)
2.18.1 (2024-08-05)
- Properly escape URL construction for XML MPU API, fixing a path traversal issue that allowed uploads to unintended buckets. Reported by @jdomeracki. (#1333) (bf4d0e0)
2.18.0 (2024-07-09)
- Allow Protobuf 5.x (#1317) (152b249)
- Correct notification error message (#1290) (1cb977d), closes #1289
2.17.0 (2024-05-22)
- Support HNS enablement in bucket metadata (#1278) (add3c01)
- Support page_size in bucket.list_blobs (#1275) (c52e882)
- Reference Storage Control in readme (#1254) (3d6d369)
- Update DEFAULT_RETRY_IF_GENERATION_SPECIFIED docstrings (#1234) (bdd426a)
2.16.0 (2024-03-18)
2.15.0 (2024-02-28)
2.14.0 (2023-12-10)
- Clarify error message and docstrings in Blob class method (#1196) (92c20d3)
- Propagate timeout in BlobWriter (#1186) (22f36da), closes #1184
- Use native namespace to avoid pkg_resources warnings (#1176) (2ed915e)
2.13.0 (2023-10-31)
- Blob.from_string parse storage uri with regex (#1170) (0a243fa)
- Bucket.delete(force=True) now works with version-enabled buckets (#1172) (0de09d3)
- Fix typo in Bucket.clear_lifecycle_rules() (#1169) (eae9ebe)
2.12.0 (2023-10-12)
- Add additional_blob_attributes to upload_many_from_filenames (#1162) (c7229f2)
- Add crc32c_checksum argument to download_chunks_concurrently (#1138) (fc92ad1)
- Add skip_if_exists to download_many (#1161) (c5a983d)
- Launch transfer manager to GA (#1159) (5c90563)
- Bump python-auth version to fix issue and remove workaround (#1158) (28c02dd)
- Mark _deprecate_threads_param as a wrapper to unblock introspection and docs (#1122) (69bd4a9)
- Add snippets for upload_chunks_concurrently and add chunk_size (#1135) (3a0f551)
- Update formatting and wording in transfer_manager docstrings (#1163) (9e460d8)
2.11.0 (2023-09-19)
- Add gccl-gcs-cmd field to X-Goog-API-Client header for Transfer Manager calls (#1119) (14a1909)
- Add transfer_manager.upload_chunks_concurrently using the XML MPU API (#1115) (56aeb87)
- Support configurable retries in upload_chunks_concurrently (#1120) (1271686)
2.10.0 (2023-06-14)
- Add matchGlob parameter to list_blobs (#1055) (d02098e)
- Allow exceptions to be included in batch responses (#1043) (94a35ba)
2.9.0 (2023-05-04)
- Avoid pickling processed credentials (#1016) (7935824)
- Improve test error message for missing credentials (#1024) (892481a)
- Add sample and sample test for transfer manager (#1027) (4698799)
- Remove threads in transfer manager samples (#1029) (30c5146)
2.8.0 (2023-03-29)
- Add trove classifier for python 3.11 (#971) (7886376)
- Remove use of deprecated cgi module (#1006) (3071832)
- Add clarifications to read timeout (#873) (8fb26f4)
- Fix c.g.c structure (#982) (d5a2931)
- Update c.g.c docs and guides (#994) (62b4a50)
2.7.0 (2022-12-07)
- Add "transfer_manager" module for concurrent uploads and downloads, as a preview feature (#943) (9998a5e)
- Add use_auth_w_custom_endpoint support (#941) (5291c08)
2.6.0 (2022-11-07)
- Add Autoclass support and samples (#791) (9ccdc5f), closes #797
- Add predefined_acl to create_resumable_upload_session (#878) (2b3e8f9)
- Enable delete_blobs() to preserve generation (#840) (8fd4c37), closes #814
- Make tests run against environments other than prod (#883) (7dfeb62)
- Align bucket bound hostname url builder consistency (#875) (8a24add)
- BlobWriter.close() will do nothing if already closed (#887) (7707220)
- Remove client side validations (#868) (928ebbc)
- Update comments in list_blobs sample (#866) (9469f5d)
- Clarify prefixes entity in list_blobs usage (#837) (7101f47)
- Streamline docs for migration (#876) (7c8a178)
- Update docstring for lifecycle_rules to match generator behavior (#841) (36fb81b)
2.5.0 (2022-07-24)
2.4.0 (2022-06-07)
- add AbortIncompleteMultipartUpload lifecycle rule (#765) (b2e5150)
- support OLM Prefix/Suffix (#773) (187cf50)
- fix changelog header to consistent size (#802) (4dd0907)
- samples: Update the Recovery Point Objective (RPO) sample output (#725) (b0bf411)
- Update generation_metageneration.rst with a missing space (#798) (1e7cdb6)
- update retry docs (#808) (c365d5b)
2.3.0 (2022-04-12)
- add dual region bucket support and sample (#748) (752e8ab)
- track invocation id for retry metrics (#741) (bd56931)
2.2.1 (2022-03-15)
2.2.0 (2022-03-14)
- add user agent in python-storage when calling resumable media (c7bf615)
- deps: require google-api-core>=1.31.5, >=2.3.2 (#722) (e9aab38)
- Fix BlobReader handling of interleaved reads and seeks (#721) (5d1cfd2)
- retry client side requests timeout (#727) (e0b3b35)
2.1.0 (2022-01-19)
- add turbo replication support and samples (#622) (4dafc81)
- avoid authentication with storage emulator (#679) (8789afa)
- remove python 3.6 support (#689) (8aa4130)
2.0.0 (2022-01-12)
- Remove Python 2 support (#657)
1.44.0 (2022-01-05)
- Describe code sample more specifically (#660) (0459cb4)
- refresh readme instructions (#667) (ceb9314)
- This is just a simple PR to better describe what the code is doing in the comments. (0459cb4)
- use writeable streamin example for 'download_blob_to_file' (#676) (96092d4)
1.43.0 (2021-11-15)
- add ignore_flush parameter to BlobWriter (#644) (af9c9dc)
- add support for Python 3.10 (#615) (f81a2d0)
- add contributing and authoring guides under samples/ (#633) (420591a)
- add links to samples and how to guides (#641) (49f78b0)
- add README to samples subdirectory (#639) (58af882)
- update samples readme with cli args (#651) (75dda81)
1.42.3 (2021-09-30)
- changeover unspecified to inherited (#603) (283a419)
- check response code in batch.finish (#609) (318a286)
- skip tests that use unspecified pap until we get the change in (#600) (38b9b55)
1.42.2 (2021-09-16)
- add preconditions and retry config support to ACL patch operationss (#586) (4333caf)
- add unpinned protobuf for python3 (#592) (53f7ad0)
- pin six as a required dependency (#589) (9ca97bf)
1.42.1 (2021-09-07)
1.42.0 (2021-08-05)
- deps: add explicit ranges for 'google-api-core' and 'google-auth' (#530) (310f207)
- downloading no longer marks metadata fields as 'changed' (#523) (160d1ec)
- make 'requests.exceptions.ChunkedEncodingError retryable by default (#526) (4abb403)
1.41.1 (2021-07-20)
- deps: pin
{api,cloud}-core,authto allow 2.x versions on Python 3 (#512) (4d7500e) - remove trailing commas from error message constants (#505) (d4a86ce), closes #501
1.41.0 (2021-07-13)
- deps: update minimum dependency versions to pick up bugfixes (#496) (92251a5), closes #494
- populate etag / generation / metageneration properties during download (#488) (49ba14c)
- revise and rename is_etag_in_json(data) (#483) (0a52546)
1.40.0 (2021-06-30)
- add preconditions and retry configuration to blob.create_resumable_upload_session (#484) (0ae35ee)
- add public access prevention to bucket IAM configuration (#304) (e3e57a9)
1.39.0 (2021-06-21)
- media operation retries can be configured using the same interface as with non-media operation (#447) (0dbbb8a)
- add ConnectionError to default retry (#445) (8344253)
- apply idempotency policies for ACLs (#458) (2232f38)
- replace python lifecycle action parsing ValueError with warning (#437) (2532d50)
- revise blob.compose query parameters
if_generation_match(#454) (70d19e7)
- streamline 'timeout' / 'retry' docs in docstrings (#461) (78b2eba)
- streamline docstrings for conditional parmas (#464) (6999370)
1.38.0 (2021-04-26)
1.37.1 (2021-04-02)
- Ensure consistency check in test runs even if expected error occurs (#402) (416bcd4)
- silence expected errors for routine operations on BlobReader (#400) (d52853b)
1.37.0 (2021-03-24)
1.36.2 (2021-03-09)
1.36.1 (2021-02-19)
- allow metadata keys to be cleared (#383) (79d27da), closes #381
- allow signed url version v4 without signed credentials (#356) (3e69bf9)
- correctly encode bytes for V2 signature (#382) (f44212b)
1.36.0 (2021-02-10)
- correctly decode times without microseconds (#375) (37a1eb5), closes #363
- expose num_retries parameter for blob upload methods (#353) (fdabd6a), closes #352
- pass the unused parameter (#349) (5c60d24)
- set custom_time on uploads (#374) (f048be1), closes #372
1.35.1 (2021-01-28)
- address incorrect usage of request preconditions (#366) (321658c)
- Amend default retry behavior for bucket operations on client (#358) (b91e57d)
1.35.0 (2020-12-14)
1.34.0 (2020-12-11)
- avoid triggering global logging config (#333) (602108a), closes #332
- fall back to 'charset' of 'content_type' in 'download_as_text' (#326) (63ff233), closes #319
- fix conditional retry handling of camelCase query params (#340) (4ff6141)
- retry uploads only conditionally (#316) (547740c)
- update 'custom_time' setter to record change (#323) (5174154), closes #322
1.33.0 (2020-11-16)
- add classifiers for python3.9 and remove for python3.5 (#295) (f072825)
- add testing support for Python 3.9, drop Python 3.5 (#313) (fa14009)
- use passed-in
clientwithinBlob.from_stringand helpers (#290) (d457ce3), closes #286 - preserve
metadatavalue when uploading new file content (#298) (5ab6b0d), closes #293
1.32.0 (2020-10-16)
- field policy return string (#282) (c356b84)
- self-upload files for Unicode system test (#296) (6f865d9)
- use version.py for versioning, avoid issues with discovering version via get_distribution (#288) (fcd1c4f)
1.31.2 (2020-09-23)
1.31.1 (2020-09-16)
- add requests as a dependency (#271) (ec52b38)
- preserve existing blob hashes when 'X-Goog-Hash header' is not present (#267) (277afb8)
- blob: base64 includes additional characters (#258) (cf0774a)
1.31.0 (2020-08-26)
- add configurable checksumming for blob uploads and downloads (#246) (23b7d1c)
- add support for 'Blob.custom_time' and lifecycle rules (#199) (180873d)
- error message return from api (#235) (a8de586)
- storage: add support of daysSinceNoncurrentTime and noncurrentTimeBefore (#162) (136c097)
- pass 'client_options' to base class ctor (#225) (e1f91fc), closes #210
- rename 'Blob.download_as_{string,bytes}', add 'Blob.download_as_text' (#182) (73107c3)
- change datetime.now to utcnow (#251) (3465d08), closes #228
- extract hashes correctly during download (#238) (23cfb65)
- repair mal-formed docstring (#255) (e722376)
1.30.0 (2020-07-24)
- add timeouts to Blob methods where missing (#185) (6eeb855)
- auto-populate standard headers for non-chunked downloads (#204) (d8432cd), closes #24
- migrate to Service Account Credentials API (#189) (e4990d0)
- fix indent in code blocks (#171) (62d1543), closes #170
- remove doubled word in docstring (#209) (7a4e7a5)
- fix indent in code blocks (#171) (62d1543), closes #170
- remove doubled word in docstring (#209) (7a4e7a5)
1.29.0 (2020-06-09)
- add generationmatch args into Blob.compose() (#122) (dc01c59)
- add Bucket.reload() and Bucket.update() wrappers to restrict generation match args (#153) (76dd9ac), closes #127
- add helper for bucket bound hostname URLs (#137) (b26f9fa), closes #121
- add ifgenerationmatch support for Bucket.rename_blob() (#141) (f52efc8)
- add ifgenerationMatch support, pt1 (#123) (0944442)
- add offset and includeTrailingPrefix options to list_blobs (#125) (d84c0dd)
- Create CODEOWNERS (#135) (32a8d55)
- add documentaion of list_blobs with user project (#147) (792b21f)
- add projection parameter to blob.reload method (#146) (ddad20b)
- add unused variables to method generation match (#152) (f6574bb)
- change the method names in snippets file (#161) (e516ed9)
- fix upload object with bucket cmek enabled (#158) (5f27ffa)
- set default POST policy scheme to "http" (#172) (90c020d)
1.28.1 (2020-04-28)
- anonymous credentials for private bucket (#107) (6152ab4)
- add bucket name into POST policy conditions (#118) (311ecab)
1.28.0 (2020-04-22)
- fix incorrect mtime by UTC offset (#42) (76bd652)
- remove expiration strict conversion (#106) (9550dad), closes #105
1.27.0 (2020-04-01)
- generate signed URLs for blobs/buckets using virtual hostname (#58) (23df542)
- Add cname support for V4 signature (#72) (cc853af)
- add conformance tests for virtual hosted style signed URLs (#83) (5adc8b0)
- add get notification method (#77) (f602252)
- improve v4 signature query parameters encoding (#48) (8df0b55)
- fix blob metadata to None regression (#60) (a834d1b)
- add classifer for Python 3.8 (#63) (1b9b6bc)
- make v4 signing formatting consistent w/ spec (#56) (8712da8)
- use correct IAM object admin role (#71) (2e27edd)
- remove docstring of retrun in reload method (#78) (4abeb1c)
- use OrderedDict while encoding POST policy (#95) (df560e1)
1.26.0 (2020-02-12)
- add support for signing URLs using token (#9889) (ad280bf)
- add timeout parameter to public methods (#44) (63abf07)
- fix documentation of max_result parameter in list_blob (#43) (ff15f19)
- fix system test and change scope for iam access token (#47) (bc5375f)
- remove low version error assertion from iam conditions system tests (#53) (8904aee)
01-16-2020 11:00 PST
- fix: replace unsafe six.PY3 with PY2 for better future compatibility with Python 4 (#10081)
- fix(storage): fix document of delete blob (#10015)
- feat(storage): support optionsRequestedPolicyVersion (#9989)
- chore(storage): bump core dependency to 1.2.0 (#10160)
01-02-2020 13:20 PST
- Add 'ARCHIVE' storage class (#9533)
01-02-2020 10:39 PST
-str() metadata for for blob (#9796)
- Add timeout parameter to Batch interface to match google-cloud-core (#10010)
11-12-2019 12:57 PST
- Move
create_bucketimplementation fromBuckettoClient. (#8604)
- Add opt-in raw download support. (#9572)
- Pin
google-resumable-media >= 0.5.0, < 0.6dev. (#9572)
- Add python 2 sunset banner to documentation. (#9036)
- Fix query-string order dependent assert. (#9728)
- Normalize VPCSC configuration in system tests. (#9616)
11-05-2019 10:22 PST
- Add UBLA attrs to IAMConfiguration. (#9475)
10-28-2019 21:52 PDT
- Add gcloud-python header to user agent (#9551)
- Don't report a gapic version for storage (#9549)
- Update storage endpoint from www.googleapis.com to storage.googleapis.com (#9543)
- Call anonymous client method to remove dependency of google application credentials (#9455)
- Enable CSEK w/ V4 signed URLs (#9450)
- Support predefined ACLs in
Bucket.create(#9334)
- Add
hmac_keyand notification documentation rst files (#9529) - Remove references to the old authentication credentials (#9456)
- Clarify docstring for
Blob.download_as_string(#9332)
09-26-2019 06:45 PDT
- Add
user_projectparam to HMAC-related methods. (#9237) - Add
Blob.from_stringandBucket.from_stringfactories. (#9143)
- Fix intersphinx reference to
requests. (#9294) - Fix deep / broken URL for service account setup. (#9164)
- Fix typo in
_helpers.py. (#9239) - In systests, retry bucket creation on 503. (#9248)
- Avoid using
REGIONAL/MULTI_REGIONALin examples, tests. (#9205) - Move
benchwrapperintotests/perf. (#9246) - Add support for
STORAGE_EMULATOR_HOST; addbenchwrapperscript. (#9219)
08-28-2019 09:45 PDT
- Expose 'HMACKeyMetadata.id' field. (#9115)
- Make 'Blob.bucket' a readonly property. (#9113)
- Clarify 'response_type' for signed_url methods. (#8942)
- Add
client_optionsto constructors for manual clients. (#9054)
- Remove compatability badges from READMEs. (#9035)
- Remove CI for gh-pages, use googleapis.dev for api_core refs. (#9085)
- Fix tests broken by yesterday's google-resumable-media release. (#9119)
- Harden 'test_access_to_public_bucket' systest against 429 / 503 errors. (#8997)
08-07-2019 00:37 PDT
- Add HMAC key support. (#8430)
- Mark old storage classes as legacy, not deprecated. (#8887)
- Normalize 'lint' / 'blacken' support under nox. (#8831)
- Update intersphinx mapping for requests. (#8805)
07-24-2019 12:37 PDT
- Retry bucket creation in signing setup. (#8620)
- Fix URI -> blob name conversion in
Client download_blob_to_file. (#8440) - Avoid escaping tilde in blob public / signed URLs. (#8434)
- Add generation to 'Blob.repr'. (#8423)
- Link to googleapis.dev documentation in READMEs. (#8705)
- Add compatibility check badges to READMEs. (#8288)
- Fix example in
Client.download_blob_to_filedocstring. (#8629) - Remove typing information for kwargs to not conflict with type checkers (#8546)
- Skip failing
test_bpo_set_unset_preserves_aclssystest. (#8617) - Add nox session 'docs'. (#8478)
- Add docs job to publish to googleapis.dev. (#8464)
06-04-2019 11:09 PDT
- Don't pin
google-api-corein libs usinggoogle-cloud-core. (#8213)
- Fix example in
download_blob_to_filedocstring. (#8201) - Tweak
fieldsdocstring further. (#8040) - Improve docs for
fieldsargument toBucket.list_blobs. (#8023) - Fix docs typo. (#8027)
- Retry harder in face of 409/429 during module teardown. (#8113)
- Add more retries for 429s during teardown operations. (#8112)
05-16-2019 12:55 PDT
- Update
Client.create_bucketto take a Bucket object or string. (#7820) - Update
Client.get_bucketto take aBucketobject or string. (#7856) - Add
Client.download_blob_to_filemethod. (#7949) - Add
client_infosupport to client / connection. (#7872)
04-17-2019 15:37 PDT
- Remove classifier for Python 3.4 for end-of-life. (#7535)
- Ensure that 'Blob.reload' passes encryption headers. (#7441)
- Update client library documentation URLs. (#7307)
- Fix failing system tests (#7714)
- Increase number of retries for 429 errors. (#7484)
- Un-flake KMS integration tests expecting empty bucket. (#7479)
02-06-2019 12:49 PST
- Add 'Bucket.iam_configuration' property, enabling Bucket-Policy-Only. (#7066)
- Improve docs for 'generate_signed_url'. (#7201)
12-17-2018 17:02 PST
- Update
Blob.update_storage_classto support rewrite tokens. (#6527)
- Skip signing tests for insufficient credentials (#6917)
- Document Python 2 deprecation (#6910)
- Normalize docs for
page_size/max_results/page_token. (#6842)
12-10-2018 13:31 PST
- Import
iam.policyfromgoogle.api_core. (#6741) - Accomodate new back-end restriction on retention period. (#6388)
- Avoid deleting a blob renamed to itself (#6365)
- Update dependency to google-cloud-core (#6835)
- Bump minimum
api_coreversion for all GAPIC libs to 1.4.1. (#6391)
- Normalize use of support level badges (#6159)
- Blacken libraries (#6794)
- Add templates for flake8, coveragerc, noxfile, and black. (#6642)
- Harden teardown in system tests. (#6444)
- Harden
create_bucketcall in systests vs. 429 TooManyRequests. (#6401) - Skip public bucket test in VPC Service Controls (#6230)
- Fix lint failure. (#6219)
- Disable test running in VPC Service Controls restricted environment (#6215)
- Use new Nox (#6175)
- Add support for bucket retention policies (#5534)
- Allow
destination.content_typeto be None inBlob.compose. (#6031)
- Ensure that
methodforBlob.generate_signed_urlis uppercase. (#6110)
- Clarify GCS URL signing limitations on GCE (#6104)
- Redirect renamed 'usage.html'/'client.html' -> 'index.html'. (#5996)
- Add support for Python 3.7, drop support for Python 3.4. (#5942)
- Add lifecycle rules helpers to bucket. (#5877)
- Add 'stacklevel=2' to deprecation warnings. (#5897)
- Preserve message / args from an
InvalidResponse. (#5492) - Fix generating signed urls for blobs with non-ascii names. (#5625)
- Move bucket location specification to
Bucket.create; deprecateBucket.locationsetter (#5808)
- Add
Client.get_service_account_email. (#5765)
- Clarify
Nonevalues for resource-backed properties. (#5509) - Elaborate docs for
{Bucket,Blob}.make_{public,private}; note how to enable anonymous accesss toBlob.public_url. (#5767)
- Harden
create_bucketsystest against 429 responses. (#5535) - Add system test: signed URLs w/ non-ASCII blob name. (#5626)
- Harden
tearDownModuleagainst 429 TooManyRequests. (#5701) - Retry
notification.create()on503 ServiceUnavailable. (#5741) - Fix failing KMS system tests. (#5832, #5837, #5860)
- Add support for KMS keys (#5259)
- Add
{Blob,Bucket}make_privatemethod (#5336)
- Modify system tests to use prerelease versions of grpcio (#5304)
- Change GCS batch endpoint from
/batchto/batch/storage/v1(#5040)
- Allow uploading files larger than 2GB by using Resumable Media Requests (#5187)
- Add range downloads (#5081)
- Update docstring to reflect correct units (#5277)
- Replace link to 404 object IAM docs with a note on limited utility. (#5181)
- Update doc reference in GCS client documentation (#5084)
- Add see also for
Bucket.createmethod call forClient.create_bucket()documentation. (#5073) - Link out to requester pays docs. (#5065)
- Add testing support for Python 3.7; remove testing support for Python 3.4. (#5295)
- Fix bad trove classifier
- Remove unused var (flake8 warning) (#5280)
- Fix unit test moving batch to batch/storage/v1 (#5082)
- Implement predefined acl (#4757)
- Add support for resumable signed url generation (#4789)
- Do not quote embedded slashes for public / signed URLs (#4716)
- Update dependency range for api-core to include v1.0.0 releases (#4944)
- Missing word in docstring (#4763)
- Install local dependencies when running lint (#4936)
- Re-enable lint for tests, remove usage of pylint (#4921)
- Normalize all setup.py files (#4909)
- Enable anonymous access to blobs in public buckets (#4315)
- Make project optional / overridable for storage client (#4381)
- Relax regex used to test for valid project IDs (#4543)
- Add support for
source_generationparameter toBucket.copy_blob(#4546)
- Added link to "Python Development Environment Setup Guide" in project README (#4187, h/t to @michaelawyu)
- Upgrading to
google-cloud-core >= 0.28.0and adding dependency ongoogle-api-core(#4221, #4280) - Requiring
google-resumable-media >= 0.3.1(#4244)